对象'<table_name>',数据库'<database_name>',schema'dbo'上的SELECT权限被拒绝。 - ASP.NET / SQL Server </database_name> </table_name>

时间:2012-12-11 22:39:45

标签: asp.net sql-server

我有一个数据库“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”访问权限。我对么 ?我在哪里错过了?

由于

3 个答案:

答案 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 $的编辑权限。用户。