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


73

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

用户名为MYUSER,数据库为MYDB

Answers:


108

在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;


1

最好创建一个新角色,然后授予执行,选择...等权限对此角色,最后将用户分配给该角色。

创建角色

CREATE ROLE [db_SomeExecutor] 
GO

授予此角色权限

GRANT EXECUTE TO db_SomeExecutor
GRANT INSERT  TO db_SomeExecutor

要添加用户数据库>安全性>>角色>数据库角色>属性>添加(右下),您可以搜索AD用户并添加,然后

要么

   EXEC sp_addrolemember 'db_SomeExecutor', 'domainName\UserName'

请参考这篇文章

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.