在SQL Server中查看表关系是否有特定的权限或用户设置?

6kkfgxo0  于 2022-12-22  发布在  SQL Server
关注(0)|答案(1)|浏览(158)

我被授予了对SQL Server数据库的访问权限,可以连接和查询数据。但是,我想检查数据模型中是否有任何显式外键和其他关系,但没有看到任何关系。我不确定这是因为没有定义任何关系、权限问题还是与DataGrip相关的问题。
奇怪的是,在PowerBI中,我可以看到一些关系,但这些关系可能是在我连接到数据库时自动生成的。
如何知道我的帐户是否未被授予查看表关系的权限?以下是我现在可以执行的操作:

  • 查询数据
  • 提取DataGrip中任何表的DDL语句。

不知道还能尝试什么。

66bbxpm5

66bbxpm51#

您可以尝试以下查询。

SQL语言

SELECT OBJECT_NAME(f.parent_object_id) AS table_name  
    , f.name AS foreign_key_name  
    ,COL_NAME(fkc.parent_object_id, fkc.parent_column_id) AS constraint_column_name  
    ,OBJECT_NAME (f.referenced_object_id) AS referenced_object  
    ,COL_NAME(fkc.referenced_object_id, fkc.referenced_column_id) AS referenced_column_name  
   , [column_type] = t.name
    --,f.is_disabled, f.is_not_trusted
    --,f.delete_referential_action_desc  
    --,f.update_referential_action_desc  
FROM sys.foreign_keys AS f
   INNER JOIN sys.foreign_key_columns AS fkc   
      ON f.object_id = fkc.constraint_object_id
   LEFT JOIN sys.all_columns ac on fkc.referenced_object_id = ac.object_id 
      and fkc.referenced_column_id = ac.column_id
   INNER JOIN sys.types t on ac.system_type_id = t.system_type_id
--WHERE f.parent_object_id = OBJECT_ID('dbo.PropertySegment')
ORDER BY table_name;

相关问题