什么是T-SQL在SQL Server中授予对数据库中表的读写权限?
什么是确切的SQL为SQL Server中的用户分配db_datareader
和db_datawriter
angular色?
用户名是MYUSER
,数据库是MYDB
。
在SQL Server 2012,2014中:
USE mydb GO ALTER ROLE db_datareader ADD MEMBER MYUSER GO ALTER ROLE db_datawriter ADD MEMBER MYUSER GO
在SQL Server 2008中:
use mydb go exec sp_addrolemember db_datareader, MYUSER go exec sp_addrolemember db_datawriter, MYUSER go
还要分配执行数据库所有存储过程的能力:
GRANT EXECUTE TO MYUSER;
分配执行特定存储过程的能力:
GRANT EXECUTE ON dbo.sp_mystoredprocedure TO MYUSER;
来自SQLServer 2012更优雅的改变angular色 :
use mydb go ALTER ROLE db_datareader ADD MEMBER MYUSER go ALTER ROLE db_datawriter ADD MEMBER MYUSER go
创build一个新的angular色会更好,然后授予执行,select…等权限到这个angular色,最后分配用户到这个angular色。
创buildangular色
CREATE ROLE [db_SomeExecutor] GO
授予此angular色的权限
GRANT EXECUTE TO db_SomeExecutor GRANT INSERT TO db_SomeExecutor
添加用户数据库>安全>>angular色>数据库>属性>添加(右下angular),您可以searchAD用户,然后添加
要么
EXEC sp_addrolemember 'db_SomeExecutor', 'domainName\UserName'
请参考这篇文章