Sql 如何为现有数据库添加角色成员
我想通过以下查询将角色成员动态添加到我的数据库中:Sql 如何为现有数据库添加角色成员,sql,sql-server-2008,stored-procedures,sqlroleprovider,Sql,Sql Server 2008,Stored Procedures,Sqlroleprovider,我想通过以下查询将角色成员动态添加到我的数据库中: 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] nvarcha
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”中的创建表权限被拒绝
请建议您使用名为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)
否则,请参见此以获取替代方法