什么是T-SQL在SQL Server中授予对数据库中表的读写权限?

什么是确切的SQL为SQL Server中的用户分配db_datareaderdb_datawriterangular色?

用户名是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' 

请参考这篇文章