MrV*_*mes 4 sql-server-2005 permissions users
我想创建一个user
对服务器内两个数据库的访问最少的数据库。该用户将由第三方人员使用,将商业智能工具集成到我们的数据库中。他们已经指定他们只需要创建视图。
所以,我在服务器上创建一个新用户,那么使用的每个数据库的数据库属性授予他们SELECT
和CREATE VIEW
特权数据库。
然后我使用该用户登录 SSMS,并尝试创建一个视图,但我收到一条消息说
'dbo' 要么不存在,要么我无权使用它。
我试图通过反复试验自己解决这个问题,但我只是不了解 sql server 上的用户权限。我做错了什么,我需要采取哪些额外/不同的步骤?
请记住,我不希望他们拥有比他们需要的最低限度更多的控制权。
您的用户应该有权修改 dbo 架构。您可以通过将权限分配给用户所属的角色来实现:
所以它就像:
CREATE ROLE Limitedaccess;
GO
GRANT CREATE VIEW TO Limitedaccess;
GO
GRANT SELECT ON SCHEMA::dbo TO Limitedaccess;
GO
CREATE USER user WITHOUT LOGIN; --- this would be the user here
GO
EXEC sp_addrolemember 'Limitedaccess', 'User';
GO
Run Code Online (Sandbox Code Playgroud)
授予权限后,重新运行之前的CREATE VIEW
语句。现在它会成功。
GRANT ALTER ON SCHEMA::dbo TO Limitedaccess;
GO
Run Code Online (Sandbox Code Playgroud)