使用SQLServer 2008 R2并将excel宏(vba)从SQL身份验证转换为AD身份验证。我有一个名为Company \ Excel_Commission的AD组,而哈里是该组的成员。
以CompanyA \ Harry身份登录并使用SQL身份验证时,我甚至无法连接到SSMS中的SQL Server。
我在登录下添加了一个新用户CompanyA \ Excel_Commission。 服务器角色是公开的
如果我做"脚本用户作为创建到"我明白了:
CREATE LOGIN [CompanyA\Excel_Commission] FROM WINDOWS WITH DEFAULT_DATABASE=[Commission], DEFAULT_LANGUAGE=[us_english]
我还将用户添加到SP所在的DB并授予执行权限。用户也是此DB中角色db_datareader和db_datawriter的成员:
如果我运行"脚本用户作为创建到",我得到
CREATE USER [Excel_Commission] FOR LOGIN [CompanyA\Excel_Commission]
更多信息
跑吧
SELECT endpnt.name,
suser_name(perms.grantee_principal_id) as grantee_principal,
perms.permission_name, perms.state_desc
FROM
sys.server_permissions perms,
sys.endpoints endpnt
WHERE
perms.class = 105
AND perms.major_id = endpnt.endpoint_id
得到了这个
name grantee_principal permission_name state_desc
TSQL Local Machine public CONNECT GRANT
TSQL Named Pipes public CONNECT GRANT
TSQL Default TCP public CONNECT GRANT
TSQL Default VIA public CONNECT GRANT
错误是错误:18456,严重性:14,状态:11。
似乎是"有效登录但服务器访问失败"
我缺少什么?
此致
标记
答案 0 :(得分:1)
连接到SQL Server是一个两步舞蹈。
第一步是创建一个登录(可以是Windows用户/组),用户使用Windows密码等,或者创建用户名和密码(必须启用)的SQL Server登录。您通常会将默认数据库(不应该是主数据库)分配给新登录。
步骤2是使用在第一步中创建的登录名在一个或多个数据库中创建用户,并授予用户执行操作的权限。有时,通过将用户放入SQL Server组,您可以向该用户授予自动权限。尝试授予尽可能窄的权限。