无法使用db_datareader角色从几个特定表中读取数据



我确实有某个Azure SQL Server的管理权限。因此,使用我的admin登录,我以以下方式针对特定的Azure SQL数据库创建了一个数据库用户:-

CREATE USER myuser WITH PASSWORD = '<pwd>'
ALTER ROLE [db_datareader] ADD MEMBER [myuser]

在此之后,我使用myuser的新凭据成功登录到数据库。我发现,虽然我可以从大多数表中查询数据,但有些表不能选择任何数据。我可以在SSMS中看到表名,对我收到的那些表进行SELECT查询也没有错误,唯一的问题是SELECT不返回这些表的任何数据(0行)。如果我使用我的管理凭据触发SELECT,我就可以非常清楚地看到结果。

我试图使用您共享的相同命令重现相同的问题。

供参考,作为repro的一部分,我创建了Azure SQL Server,然后在同一台服务器上创建了SQL数据库。我添加了三个示例表来匹配您提到的场景。然后,我创建了user,并使用您提到的相同命令授予db_datareader角色。这对我来说很好。我可以读取该特定数据库中所有表的数据。

我建议你考虑如何创建登录,用户&SQL Server权限分配及db_datareader角色概述

或者,你可以给那些你不能读的表授予选择权限,使用下面的命令:

GRANT SELECT ON <tablename> TO <user>;

相关内容

  • 没有找到相关文章

最新更新