首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >授予对SQL Server数据库中的表的读写访问权限的T-SQL是什么?

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

Stack Overflow用户
提问于 2009-01-19 02:07:36
回答 3查看 112.6K关注 0票数 80

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

用户名为MYUSER,数据库为MYDB

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-01-19 02:23:27

在SQL Server 2012中,2014:

代码语言:javascript
复制
USE mydb
GO

ALTER ROLE db_datareader ADD MEMBER MYUSER
GO
ALTER ROLE db_datawriter ADD MEMBER MYUSER
GO

在SQL Server 2008中:

代码语言:javascript
复制
use mydb
go

exec sp_addrolemember db_datareader, MYUSER 
go
exec sp_addrolemember db_datawriter, MYUSER 
go

要同时分配执行数据库的所有存储过程的能力:

代码语言:javascript
复制
GRANT EXECUTE TO MYUSER;

要分配执行特定存储过程的能力,请执行以下操作:

代码语言:javascript
复制
GRANT EXECUTE ON dbo.sp_mystoredprocedure TO MYUSER;
票数 119
EN

Stack Overflow用户

发布于 2013-12-18 22:40:28

来自SQLServer 2012更优雅的alter role

代码语言:javascript
复制
use mydb
go

ALTER ROLE db_datareader
  ADD MEMBER MYUSER 
go
ALTER ROLE db_datawriter
  ADD MEMBER MYUSER 
go
票数 12
EN

Stack Overflow用户

发布于 2017-04-21 17:30:12

最好是创建一个新角色,然后授予execute、select ...etc权限授予此角色,并最终将用户分配给此角色。

创建角色

代码语言:javascript
复制
CREATE ROLE [db_SomeExecutor] 
GO

授予此角色权限

代码语言:javascript
复制
GRANT EXECUTE TO db_SomeExecutor
GRANT INSERT  TO db_SomeExecutor

要添加用户database>security> > roles > databaseroles>Properties > Add (右下角),您可以搜索AD用户,然后添加

代码语言:javascript
复制
   EXEC sp_addrolemember 'db_SomeExecutor', 'domainName\UserName'

请参考此post

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/456346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档