保护和监视数据仓库
安全性和监视是管理数据仓库的关键方面。
安全性
数据仓库安全性对于保护数据免受未经授权的访问非常重要。 Fabric 提供了许多安全功能来帮助保护数据仓库。 这些包括:
- 基于角色的访问控制(RBAC)用于控制对仓库及其数据的访问。
- 用于保护仓库与客户端应用程序之间的通信的 TLS 加密。
- Azure 存储服务加密,用于保护传输中的数据和静态数据。
- Azure Monitor 和 Azure Log Analytics 用于监视仓库活动并审核对数据的访问权限。
- 多重身份验证(MFA)为用户帐户添加额外的安全层。
- Microsoft Entra ID 集成来管理用户标识和对仓库的访问权限。
工作区权限
Fabric 中的数据组织到工作区中,用于控制访问和管理数据和服务的生命周期。 适当的工作区角色是保护数据仓库的第一道防线。
除了工作区角色,还可以通过 SQL 授予 项权限 和访问权限。
小窍门
有关工作区角色的详细信息,请参阅 Power BI 中的 工作区。
项目权限
与适用于工作区中的所有项的工作区角色相比,可以使用 项权限 授予对各个仓库的访问权限。 这样,便可以共享单个数据仓库供下游使用。
可以通过 T-SQL 或在 Fabric 门户中向用户授予权限。 向需要访问数据仓库的用户授予以下权限:
- 读取:允许用户使用 SQL 连接字符串进行连接。
- ReadData:允许用户从仓库中的任何表/视图中读取数据。
- ReadAll:允许用户读取 OneLake 中可供 Spark 使用的原始 parquet 文件的数据。
如果没有至少读取权限,与 SQL 分析终结点的用户连接将会失败。
监测
监视数据仓库中的活动对于确保最佳性能、高效的资源利用率和安全性至关重要。 它可帮助你识别问题、检测异常并采取措施,使数据仓库保持平稳且安全。
可以使用 动态管理视图 (DMV)监视连接、会话和请求状态,以查看实时 SQL 查询生命周期见解。 使用 DMV,您可以获取诸如活动查询数量等详细信息,并识别出哪些查询长时间运行并需要终止。
目前在 Fabric 中有三个 DMV 可用。
- sys.dm_exec_connections:返回有关在仓库和引擎之间建立的每个连接的信息。
- sys.dm_exec_sessions:返回有关在项和引擎之间经过身份验证的每个会话的信息。
- sys.dm_exec_requests:返回有关会话中每个活动请求的信息。
查询监视
使用“sys.dm_exec_requests”识别可能影响数据库整体性能的长时间运行的查询,并采取适当的措施优化或终止这些查询。
首先找出运行时间较长的查询。 使用以下查询确定哪些查询运行时间最长,按降序排列:
SELECT request_id, session_id, start_time, total_elapsed_time
FROM sys.dm_exec_requests
WHERE status = 'running'
ORDER BY total_elapsed_time DESC;
可以继续调查,以了解哪个用户运行了包含长时间运行查询的会话,具体方法是运行以下命令:
SELECT login_name
FROM sys.dm_exec_sessions
WHERE session_id = 'SESSION_ID WITH LONG-RUNNING QUERY';
最后,您可以使用 KILL 命令来终止长时间运行查询的会话。
KILL 'SESSION_ID WITH LONG-RUNNING QUERY';
重要
必须是工作区管理员才能运行 KILL 该命令。 工作区管理员可以执行所有三种 DMV。 成员、参与者和查看器角色可以在仓库中查看自己的结果,但看不到其他用户的结果。