none
如何解决“不能打开数据库,用户NT AUTHORITY\NETWORK SERVICE登录失败”的错误呢? RRS feed

  • 问题

  • 有时候你用IIS配置应用程序, IIS试图登录SQL Server而没有合适的权限,有时候在数据库复制或者数据库镜像中,也会发生以下错误:
    Error: Cannot open database requested by the login. The login failed. Login failed for user ‘NT AUTHORITY\NETWORK SERVICE’.
    2012年1月2日 8:19
    版主

答案

  • Network Service 帐户是一个内置帐户,比 Users 组的成员拥有更多的对资源和对象的访问权限。以 Network Service 帐户身份运行的服务将使用计算机帐户的凭据访问网络资源。该帐户的实际名称为“NT AUTHORITY\NETWORK SERVICE”。

    在这种情况下怎么解决呢?

    方法一 (Management Studio User Interface):
    打开SQL Server Management Studio, 单击Security 和Logins,右击NT AUTHORITY\NETWORK SERVICE, 选择Properties. (如果没有NT AUTHORITY\NETWORK SERVICE,就添加这个login)
    在打开的Login Properties页面,单击“User Mapping”。在“User Mapping”页面,选择你需要连接的数据库,在此页面下部,选择db_owner role,单击OK。

    方法二(T-SQL):

    1. 把用户NT AUTHORITY\NETWORK SERVICE加入到SQL Login 中。(如此用户已经在SQL Login中,省略此步)
    EXEC sp_grantlogin N'NT AUTHORITY\NETWORK SERVICE'
    GO
    2. 把db_owner的权限赋予NT AUTHORITY\NETWORK SERVICE。
    USE Your_DB_Name
    GO
    EXEC sp_addrolemember 'db_owner', N'NT AUTHORITY\NETWORK SERVICE'
    GO

    2012年1月2日 8:20
    版主