【发布时间】:2018-10-24 16:44:14
【问题描述】:
我有一个Access 2013 应用程序,其中的表链接到SQL Server 2008 R2。在对用户进行测试时,我给了他数据库的 db_datareader 和 db_datawriter 角色。
我收到了这个错误:
连接失败:SQLState '28000' SQL Server 错误:18456 [Microsoft][ODBC SQL Server Driver][SQL Server]用户登录失败 'xxxxx'
当我添加系统管理员服务器角色时,他可以使用该应用程序。
如何允许用户在不授予服务器角色的情况下使用该应用?
【问题讨论】:
-
您是否对 SQL Server 使用 Windows 身份验证?
-
是的,我正在使用 Windows 身份验证。
-
当你创建一个新的登录时,它是否默认没有分配
public服务器角色? -
您需要在服务器级别创建登录,然后使用您描述的数据库角色将用户添加到数据库。不需要服务器级别的角色。默认情况下会授予连接权限。
-
您的应用可以包含(最好是隐藏的)数据库凭据,并且不使用用户的凭据。这通常可以通过代码而不是 GUI 链接表来实现。
标签: sql-server ms-access