Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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
Sql 信息方案_Sql - Fatal编程技术网

Sql 信息方案

Sql 信息方案,sql,Sql,我需要有关SQL信息和模式的帮助。我需要找到:所有用户都有权向其中写入查询的表。也许有人有一些想法?试试这个 select sys.schemas.name 'Schema' , sys.objects.name Object , sys.database_principals.name username , sys.database_permissions.type permissions_type , sys.database_permissions.

我需要有关SQL信息和模式的帮助。我需要找到:所有用户都有权向其中写入查询的表。也许有人有一些想法?

试试这个

    select sys.schemas.name 'Schema'
   , sys.objects.name Object
   , sys.database_principals.name username
   , sys.database_permissions.type permissions_type
   ,     sys.database_permissions.permission_name
   ,      sys.database_permissions.state permission_state
   ,     sys.database_permissions.state_desc
   ,     state_desc + ' ' + permission_name + ' on ['+ sys.schemas.name + '].[' + sys.objects.name + '] to [' + sys.database_principals.name + ']' COLLATE LATIN1_General_CI_AS 
from sys.database_permissions join sys.objects on sys.database_permissions.major_id =      sys.objects.object_id join sys.schemas on sys.objects.schema_id = sys.schemas.schema_id join sys.database_principals on sys.database_permissions.grantee_principal_id =      sys.database_principals.principal_id order by 1, 2, 3, 5
答案是:)
添加您正在使用的数据库。我相信,通过信息模式,您可以访问的所有信息都是有关您自己权限的信息(您被授予或已经授予他人的权限)。我认为你不能保证其他用户的信息。你检查过这个吗?那里太复杂了。。。我只需要几行代码:(一个普通用户无权列出所有其他用户。问题目前只是标记的,这意味着任何答案(在没有附加标记的情况下)应遵循ANSI标准,且不包含特定于产品的代码。问题中提到的
信息_SCHEMA
视图是唯一接近跨数据库元数据标准的视图。此答案似乎使用特定于产品的元数据表/视图。
SELECT table_name AS "Table name", privilege_type AS "Permission", grantee AS "User"
FROM information_schema.table_privileges
WHERE privilege_type = 'SELECT' 
  AND grantee = 'PUBLIC';