2014-04-23 6 views
0

Я хочу, чтобы добавить элемент роли в моих базах данных динамически с помощью ниже запроса:Как добавить элемент роли для существующей базы данных

use MyExistingDatabase 
GO 
EXEC sp_addrolemember @rolename = 'db_owner', @membername = 'A38' 
GO 
execute as user='A38' 
GO 
CREATE TABLE [A38].[ABC] ( 
[Id]    int    IDENTITY(1,1) NOT NULL, 
[Name] nvarchar(100)        NULL, 

Здесь A38 мое имя пользователя в MyExistingDatabase и хочет выполнить дальнейший сценарий с схема по умолчанию A38. Данный скрипт работает отлично, в случае, если создать новую базу данных, но если бы я использовал мои любые существующую базу данных, он выдает следующее сообщение об ошибке:

User does not have permission to perform this action

CREATE TABLE permission denied in database 'MyExistingDatabase'

Пожалуйста предложить

ответ

0

Вы создаете таблицу со схемой называется A38, так что вам нужно, чтобы убедиться, что схема существует, например:

use MyExistingDatabase 
GO 
EXEC sp_addrolemember 'db_owner', 'A38' 
GO 
CREATE SCHEMA A38 AUTHORIZATION A38 
GO 
CREATE TABLE [A38].[ABC] ( 
[Id]    int    IDENTITY(1,1) NOT NULL, 
[Name] nvarchar(100)        NULL) 

в противном случае увидеть эту link для альтернативного метода.

Смежные вопросы