除非SQL Server 2014 Express用户属于sysadmin服务器角色,否则无法连接?

时间:2018-01-30 15:03:42

标签: sql-server ssms

除非用户是sysadmin服务器角色的一部分,否则我们的SQL服务器将不允许用户在SSMS或Excel查询中连接到服务器。我们正在使用混合模式身份验证有没有解决的办法?我们不希望为这些用户提供sysadmin访问权限,因为他们能够执行T-SQL查询。我们只是想让用户连接并从数据库中读取。

已授予用户在服务器和端点上的连接。这是用于创建用户的脚本。是否需要在SQL服务器上修改某些内容?

/*create user*/
EXEC sp_addlogin 'user','P@55w0rd123!','master'
USE master
EXEC sp_grantdbaccess 'user'
EXEC sp_addrolemember'db_datareader','user'

/*grant user connect access*/
GRANT CONNECT TO [user]
GRANT CONNECT ON ENDPOINT::"TSQL Default TCP" TO "user"

更新: 似乎有人更改了公共服务器角色权限。下面的查询返回权限名称管理批量操作,验证服务器,连接任何数据库,控制服务器,查看任何定义,查看任何数据库,以及查看任何服务器状态都设置为DENY。是否有可以运行的脚本可以恢复公共角色?我不确定哪些权限应该从上面设置为DENY,用于公共角色。

SELECT * FROM sys.server_permissions WHERE grantee_principal_id=2 and STATE ='D'

我已经运行了以下代码来重新授予对Public角色的访问权限。

GRANT CONNECT ON ENDPOINT::[TSQL DEFAULT TCP] TO PUBLIC AS SA
GRANT CONNECT ON ENDPOINT::[TSQL DEFAULT VIA] TO PUBLIC AS SA
GRANT CONNECT ON ENDPOINT::[TSQL Local Machine] TO PUBLIC AS SA
GRANT CONNECT ON ENDPOINT::[TSQL NAMED PIPES] TO PUBLIC AS SA

0 个答案:

没有答案