【问题标题】:Best way to create SQL user with read only permissions?创建具有只读权限的 SQL 用户的最佳方法?
【发布时间】:2013-08-11 22:40:09
【问题描述】:
为特定数据库创建只读用户的最佳实践是什么?
我创建了一个新用户并授予了 db_datareader 角色,但是,该用户仍然可以访问主数据库和其他系统数据库。那样行吗?还是我应该拒绝访问某些系统表/数据库以使其更安全?
谢谢。
好的,所以如果我创建一个新用户,他是否还有更多我必须拒绝的默认权限?
如果我做
~创建登录
〜创建用户登录..
~ 为用户授予 EXECUTE 权限
用户是否只有 EXECUTE 权限,还是对活动数据库也有其他权限?
【问题讨论】:
标签:
sql-server
sql-server-2008
【解决方案1】:
您好,我相信用户也可以在对象资源管理器中查看其他数据库。
CREATE LOGIN me with password = 'me', check_policy = off
sp_changedbowner 'me'
GO
USE MASTER
GO
DENY VIEW ANY DATABASE TO me
GO
【解决方案2】:
您可以使用拒绝写入作为角色选项。用户必须“看到”主服务器,因为主服务器包含他最终将连接到的数据库列表,但他在那里只有来宾权限。然后,您可以拒绝访问其他特定数据库。 AFAIK 他不需要将 tempdb 或 msdb 视为访问这些的 SQL 引擎