我被授予访问SQL Server数据库的权限,可以连接和查询数据。但是,我想检查数据模型中是否有显式外键和其他关系,但是没有看到。我不确定这是因为没有任何定义,或者权限问题,或者与DataGrip相关的问题。
奇怪的是,在PowerBI中,我可以看到一些关系,但这可能是在我连接到数据库时自动生成的。
我如何知道我的帐户是否被授予查看表关系的权限?以下是我现在可以做的事情:
- 查询数据
- 提取DataGrip中任意表的DDL语句
不知道还可以尝试什么
您可以尝试以下查询:
/p>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;
如果您使用相同的帐户,并且可以在Power BI中看到表关系,但在DataGrip的Database Explorer中看不到,则不太可能是与权限相关的问题。首先,尝试刷新这些关系对象所在的模式。当你展开树时,如果这些物体没有出现在桌子下面,请打开一张票。