我有一个数据库“Sample”。 Active Directory(AD)中有一个名为“CORPHQ \ King”的用户。我已按照以下步骤操作:
1) Go to SQL Server Management Studio (2005) and "Security -> Logins".
2) Right Click -> New Login
3) Login Name : CORPHQ\King
4) Selected "Windows Authentication"
5) Default database - "Sample".
6) Under "User Mapping" section, Selected the "Sample" database, User as "CORPHQ\King" and selected "dbo" as default schema.
7) Selected "db_owner" as "Database role membership for - Sample".
现在在ASP.NET应用程序的WEB.CONFIG中,我确实有:
<connectionStrings>
<add name="DB" connectionString="Data Source=128.127.126.25; database=Sample; user=corphq\King; password=XXXXXXXXXXX; Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
</connectionStrings>
现在,当我运行ASP.NET应用程序时,我收到了提到的错误:
Error:
The SELECT permission was denied on the object 'tbl_Student', database 'Sample', schema 'dbo'
我认为用户“CORPHQ \ King”具有对“Sample”数据库的“db_owner”访问权限。我对么 ?我在哪里错过了?
由于
答案 0 :(得分:4)
由于您在连接字符串中指定了Integrated Security
,因此在使用Windows身份验证时不应指定用户名和密码。
相反,您将作为ASP.NET运行的任何域帐户进行身份验证,这可能是网络服务帐户。
您的应用程序可能以与CORPHQ\King
完全不同的用户身份进行连接,而此其他登录信息没有此操作的权限。
有关详细信息,请参阅How To: Connect to SQL Server Using Windows Authentication in ASP.NET 2.0
答案 1 :(得分:2)
您可能已授予其连接数据库的权限,但应该有进一步的步骤来授予该数据库中表的用户特定权限,例如SELECT,INSERT,UPDATE和DELETE。
答案 2 :(得分:1)
解决这个问题的方法是打开dbo架构 转到属性并单击“查看数据库权限”链接。 为数据库选择,删除DOMAIN \ MACHINENAME $的编辑权限。用户。