Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查Azure SQL数据库中特定用户的所有访问权限?_Azure_Azure Sql Database_Schema_Privileges_Azure Sql Server - Fatal编程技术网

如何检查Azure SQL数据库中特定用户的所有访问权限?

如何检查Azure SQL数据库中特定用户的所有访问权限?,azure,azure-sql-database,schema,privileges,azure-sql-server,Azure,Azure Sql Database,Schema,Privileges,Azure Sql Server,我对模式/权限有以下问题: 用户可能有多个数据库角色(架构) db_denydatareader的用途是什么?(看起来数据库之间可以有不同的数据库角色,对吗?) 若只希望用户读取特定数据库中的数据,那个么db_datareader和db_denydatawriter之间有什么区别 我试图从模式中撤销选择权(TestUser使用默认模式db_datareader),为什么它仍然可以搜索表 REVOKE SELECT ON SCHEMA::db_datareader TO TestUser; 如

我对模式/权限有以下问题:

  • 用户可能有多个数据库角色(架构)
  • db_denydatareader的用途是什么?(看起来数据库之间可以有不同的数据库角色,对吗?)
  • 若只希望用户读取特定数据库中的数据,那个么db_datareader和db_denydatawriter之间有什么区别
  • 我试图从模式中撤销选择权(TestUser使用默认模式db_datareader),为什么它仍然可以搜索表

    REVOKE SELECT ON SCHEMA::db_datareader TO TestUser;
    
  • 如何仅向用户而非所有表授予少数表的选择和更新权限?(即无删除和插入权限)

  • 在sys.objects表中找不到的这些系统权限指的是什么

    select * from sys.database_permissions where major_id <= 0;
    

    select*from sys.database\u permissions where mair\u id似乎您认为架构和角色是相同的,但它们并不相同。角色是安全成员身份容器,主体可以是角色的成员。模式包含数据库模式绑定对象,它们有助于将数据库对象分组在一起,并由主体拥有。当您创建一个新用户时,您可以选择他的默认模式,将他添加到某些角色,并授予他模式的所有权

    db_denydatareader固定数据库角色的成员无法读取数据库中用户表中的任何数据

    关于db_datareader和db_denydatawriter之间的区别。db_datareader授予所有表的select权限,并且不影响任何insert、update和delete权限。同时,db_denydatawriter拒绝对所有表的插入、更新和删除权限,拒绝对任何表进行任何更改。即使某人被直接授予插入权限,他们仍然无法插入,因为拒绝会推翻授予。将用户分配给db_denydatawriter角色意味着,无论他们拥有什么其他权限,他们都无法对数据库进行任何更改。拒绝优先于给予

    关于问题#4,您可以对架构上的表进行分组,然后拒绝主体或用户对架构的SELECT权限。db_datareader是一个固定的数据库角色,而不是架构

    DENY SELECT ON schema::[SchemaName] TO [user_name]
    
    类似地,您可以对包含一组表的数据库上的架构授予选择和更新权限

    GRANT SELECT, UPDATE on SCHEMA::SchemaName TO [user_name]
    
    您可以找到数据库角色的列表