您能否访问SQL Server数据库中具有db_datareader角色成员身份的表约束
我试图弄清楚为什么拥有您能否访问SQL Server数据库中具有db_datareader角色成员身份的表约束,sql,sql-server,Sql,Sql Server,我试图弄清楚为什么拥有db\u datareader和db\u datawriter成员资格的特定SQL Server数据库用户不能运行select语句来获取特定表上的某些检查约束 我在代码中运行select语句,但它不返回任何数据。我想,为了获取约束信息,您可能需要不同的权限。我试着去看看其中的一些角色,以及它们的意思,但不清楚db_reader角色到底能做什么 string constraintCommand = @"SELECT tc.CONSTRAINT_NAME, CC.CHECK_C
db\u datareader
和db\u datawriter
成员资格的特定SQL Server数据库用户不能运行select语句来获取特定表上的某些检查约束
我在代码中运行select语句,但它不返回任何数据。我想,为了获取约束信息,您可能需要不同的权限。我试着去看看其中的一些角色,以及它们的意思,但不清楚db_reader角色到底能做什么
string constraintCommand = @"SELECT tc.CONSTRAINT_NAME, CC.CHECK_CLAUSE
FROM[INFORMATION_SCHEMA].[CHECK_CONSTRAINTS as cc
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS as tc ON cc.CONSTRAINT_NAME = tc.CONSTRAINT_NAME AND cc.CONSTRAINT_SCHEMA = tc.TABLE_SCHEMA
WHERE tc.TABLE_NAME = 'VideoSources'";
这是C#。我以我的身份在SSMS中运行SQL语句(
db_owner
),SQL语句返回我需要的数据。我想知道这是否是某种权限问题。要运行存储过程,角色需要执行权限。我认为权限授予或拒绝会覆盖角色成员资格。您可能需要在表中明确授予Select权限。请检查此日志,该日志可能重复在该用户上运行有关数据库工作的Grant view定义。我运行:使用[我的数据库名称];去;将视图定义授予数据库用户