【发布时间】:2019-08-05 07:49:23
【问题描述】:
我在数据库中向我的用户授予对某些对象的权限,有没有办法在不使用数据库角色的情况下向用户授予权限?
我可以通过创建数据库角色轻松做到这一点,但我不想使用角色。 我通过数据库用户为我的用户分配了一些对象,在 Securables 选项卡中,它不起作用!
create user [user_test] for login [login_test]
create role role_test authorization user_test
exec sp_addrolemember 'role_test', 'user_test'
grant select on object::dbUser.tbl_05 to role_test
我希望我可以向我的用户授予权限而不是使用数据库角色。
【问题讨论】:
-
是的,只需授予用户权限即可。所以
GRANT EXECUTE ON dbo.YourProc TO YourUser;而不是GRANT EXECUTE ON dbo.YourProc TO YourRole;。此外,sp_addrolemember已被弃用,您应该真正使用ALTER ROLE ... ADD MEMBER。 -
哦,谢谢伙计,我做了一次,但没有得到我的结果,我又做了一次,它成功了!非常感谢您告诉我 sp_addrolemember 已被弃用,我现在没有!祝你好运;)
-
我承认,即使微软也没有停止在他们的文档中使用它(example),如果我没记错的话,它在 2008 年被弃用了。
-
实际上我在一小时前在 Microsoft 文档中阅读了它,我认为唯一的方法就是使用它!感谢您通知我!
标签: sql sql-server permissions