3

我想在 SQL Server 2008 中创建一个存储过程来创建数据库角色并向它们授予权限,它采用一个参数,一个nvarchar代表要创建的角色名称,但我不确定如何编写。

我可以用这个创建角色

EXEC sp_addrole @RoleName

但是当我尝试用这个授予角色权限时

Grant select on dbo.someTable to  @RoleName

它不会接受@RoleName,我该怎么做?

谢谢

4

1 回答 1

7

使用动态 SQL 将 sql 语句生成为文本,然后可以使用 EXEC 运行

declare @sql nvarchar(max)
set @sql = 'Grant select on dbo.someTable to ' + @RoleName  -- protect if required
EXEC (sql)
于 2011-01-27T11:57:58.453 回答