我在SQL Server数据库上添加了一个Application Role,并授予该角色对数据库的一个表的访问权限。从客户端我可以使用应用程序角色的凭据正确登录。
我正在使用Windows身份验证。奇怪的是,即使客户端没有sp_setapprole
语句,客户端也可以毫无问题地读取表格。但我想避免这种情况。
我正在使用此连接字符串:
Data Source=.\SQLEXPRESS;Initial Catalog=WTC_Database;Pooling=false;Integrated Security=SSPI;
可能是什么问题?如何正确配置应用程序角色,拒绝未登录应用程序角色的其他用户访问该表?
答案 0 :(得分:2)
由于您的连接字符串指定使用集成安全性,因此我们知道客户端的凭据正用于身份验证。客户端可能具有datareader角色,或者表可能是公共选择。
您需要撤消对所有人的访问权限,除了谁应该有访问权限。角色应始终授予访问权限,而不是撤销访问权限。在不授予某些角色的情况下,您的系统应该很少或不允许访问数据。