sql-server - 对对象 'Users'、数据库 'XXX'、架构 'dbo' 的 SELECT 权限被拒绝

标签 sql-server azure-sql-database

我将数据库从 SQL Server 2012 移至 Azure。我不想使用用户 master,因此我创建了一个用户 test。这是我对 Azure 上的数据库 XXX 所做的:

create user test from login test with default_schema=[dbo]
exec sp_addrolemember 'db_owner','test'

我查了一下,我感兴趣的数据库对象都在模式dbo中。表 Users 位于架构 dbo 中。

我的网络项目中的连接字符串将 test 作为登录名。它产生错误消息:

The SELECT permission was denied on the object 'Users', database 'XXX', schema 'dbo'

错误消息是什么意思?我该怎么做才能让用户test访问数据库XXX?

最佳答案

  1. 打开 SQL Management Studio
  2. 扩展您的数据库
  3. 展开“安全”文件夹
  4. 展开“用户”
  5. 右键单击用户(尝试执行查询的用户)并选择属性
  6. 选择页面成员(member)
  7. 确保取消选中

    db_denydatareader

    db_denydatawriter

enter image description here

这应该是不言而喻的,但只授予用户需要的权限。一个简单的懒惰修复方法是像我一样检查db_owner,但这不是最佳的安全实践。

关于sql-server - 对对象 'Users'、数据库 'XXX'、架构 'dbo' 的 SELECT 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19334041/

相关文章:

sql-server - 有没有办法在 SQL Server 2005 中设置小数计算的默认精度?

sql-server - 如何使用 ADF 将数据从本地数据库迁移到 Azure 托管数据库?

Azure:更多 DTU 还是更多分片?

azure - 如何在 Microsoft Azure 中检查/查看 SQL DB 中的数据

sql-server - 导入 SQL Server 数据库的大型 Excel 文件

sql - 如何在 SQL Server 上强制 SELECT 阻塞?

sql-server - 使用 SQL Server for WSS 3.0 代替 Windows 内部数据库

asp.net-mvc-3 - 部署在Azure上的MVC应用程序无法连接到SQL Azure数据库,但可以通过SSMS连接

asp.net-mvc - EF4、MVC 3、Azure 和 Code First 或传统

sql-server - 如何备份文件流数据库?