好的,所以我有一个数据库,一个登录名和一个分配给登录名的数据库用户。要授予该用户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附近的语法不正确
答案 0 :(得分:2)
如果您使用的是sql server 2008,则只有sp_addrolemember
可以使用。
alter role语法仅对2012版本有效。这是因为你得到了错误的语法错误