Как добавить участника роли для существующей базы данных
Я хочу добавить члена роли в мои базы данных динамически с помощью запроса ниже:
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
, Приведенный выше скрипт работает нормально в случае, если я создаю новую базу данных, но если я использую любую существующую базу данных, он выдает следующую ошибку:
Пользователь не имеет разрешения на выполнение этого действия
В базе данных MyExistingDatabase отказано в разрешении CREATE TABLE
Пожалуйста, предложите
1 ответ
Вы создаете таблицу со схемой 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)
В противном случае см. Эту ссылку для альтернативного метода.