如何授予数据库用户读/写访问角色“新方法”?

时间:2013-10-24 00:25:19

标签: sql sql-server sql-server-2008 tsql

好的,所以我有一个数据库,一个登录名和一个分配给登录名的数据库用户。要授予该用户db_datareader和db_datawriter访问数据库的权限,我会这样做:

USE [mydatabase];
EXEC sp_addrolemember db_datareader, [myuser];
EXEC sp_addrolemember db_datawriter, [myuser];

但如果我正确地阅读documentation,则不鼓励使用sp_addrolemember

  

将在Microsoft SQL的未来版本中删除此功能   服务器。避免在新的开发工作中使用此功能,并计划   修改当前使用此功能的应用程序。使用ALTER ROLE   代替。

那你如何用ALTER ROLE做到这一点?当我这样做时:

ALTER ROLE sys.database_role_members.db_datareader ADD MEMBER [myuser];

我收到此错误:

  

ADD MEMBER附近的语法不正确

1 个答案:

答案 0 :(得分:2)

如果您使用的是sql server 2008,则只有sp_addrolemember可以使用。

alter role语法仅对2012版本有效。这是因为你得到了错误的语法错误