我目前正在为我们的网站实施缓存机制。 我想使用SQL Cache依赖功能。 我在管理工作室运行以下命令,但它无法正常工作。
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO "my_server_name\ASPNET"
我得到的错误是:
Cannot find the user 'my_server_name\ASPNET', because it does not exist or you do not have permission.
我尝试使用特定数据库的管理员登录我正在为机器管理员设置通知,sa和windows身份验证。 还尝试以管理员身份运行管理工作室,但仍然不高兴。 有人可以指出我正确的方向。 谢谢!
答案 0 :(得分:12)
首先,您似乎正在尝试向运行该网站的帐户授予权限。在IIS 6和IIS7中,这些是由应用程序池上设置的帐户控制的。该帐户使用为ASPNET
但不再默认使用。相反,默认(从我认为的.NET 2.0开始)是NETWORK SERVICE
。但是,如果您使用的是IIS 7,则会再次发生变化。默认情况下,在IIS7中,它使用称为“ApplicationPoolIdentity”的东西,它是为每个站点创建的自己的特殊凭据。如果SQL Server与Web服务器位于不同的计算机上,则会遇到另一个问题,即凭据都是本机的本地凭据。
我的建议是根据您的设置执行以下操作:
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO "domain name\MyIISAccount"
可能还有其他Kerberos问题与域上的两个服务器相关,并且可能需要创建SPN(服务主体名称)。
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO 'SQLServerMachineName\AccountUsedBySite'
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO 'SQLUserAccountUsedBySite'
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO 'SQLServerMachineName\MyIISAccount'
答案 1 :(得分:2)
试试这个:
授予[my_server_name \ ASPNET]
的订阅查询通知