我想在SQL Server 2008中创建一个存储过程来创建数据库角色并为它们授予权限,这需要一个参数,nvarchar
表示要创建的角色名称,但我不确定怎么写这个。
我可以使用此
创建角色EXEC sp_addrole @RoleName
但是当我尝试使用此
授予角色权限时Grant select on dbo.someTable to @RoleName
它不会接受@RoleName,我该如何做呢?
感谢
答案 0 :(得分:6)
使用动态SQL以文本形式生成sql语句,然后可以使用EXEC
运行declare @sql nvarchar(max)
set @sql = 'Grant select on dbo.someTable to ' + @RoleName -- protect if required
EXEC (sql)