sas - SAS 9.3 将一个服务器上的特定表的访问权限授予另一个用户上的用户
问题描述
我有 2 台 SAS 9.3 服务器 Server-A 和 Server-B,它们有单独的库、数据集和用户。
SERVER A 上名为 LIB_A 的库中有五个表:A1 A2 A3 A4 A5
我只想与来自服务器 B 的另一个用户共享数据集 A3。
A3 是一个动态表,所以我决定用它制作一个名为 V_A3 的 SAS 视图,并将其存储在一个名为 LIB_B 的新库中。
PROC SQL;
CREATE VIEW LIB_B.V_A3 AS
SELECT * FROM LIB_A.A3;
QUIT;
RUN:
如何与来自服务器 B 的用户共享位于库 LIB_A 中服务器 A 上的 V_A3 SAS 视图?
我试图在服务器 B 上创建一个新库,并将路径分配为 LIB_B 的主文件夹(\SERVER B\LIB_B)的网络共享。
用户看到库和视图,但视图产生错误并且未显示数据。可能是因为创建视图的代码引用了外部资源,例如
SELECT * FROM LIB_A.A3
在不创建视图的情况下,如何保持数据源动态?
在服务器 B 上,如果我创建一个使用服务器 A 上原始文件夹路径的 SAS BASE 库;
\服务器 A\LIB_A
用户看到所有五个表:A1、A2、A3、A4、A5。
但我希望他只看到表 A3。如果我能做到这一点,就不需要创建视图。
我怎样才能让它工作?我的服务器在 Windows 和 SAS 9.3 T1M1 上。
解决方案
简单的答案是在表级别而不是在文件夹级别授予权限。无论您是使用 SAS 元数据服务器来管理权限,还是使用 Windows,都是如此。
在 SAS Metadata Server 中,您可以为 创建一个 ACT deny
(无读取访问权限)ServerBUsers
,然后您可以为 单独创建另一个 ACT permit
(读取访问权限)ServerBUsers
。然后,将deny
ACT 应用于\ServerA\LibA
,并将permit
ACT 应用于\ServerA\LibA\TableA3
。
Windows 权限的工作方式大致相同,您的 Windows 权限必须至少与您的 SAS 权限一样宽松,否则用户会收到烦人的消息。如果您愿意在 SAS 中处理权限,那么只需授予对整个文件夹的读取权限;但如果没有,您可以创建类似于上述 ACT 的 Windows AD 组,然后让 SAS 使用这些 Windows AD 组来定义 SAS 用户组,然后这些用户组对各种文件/文件夹具有权限或没有权限。
推荐阅读
- javascript - 如何引用挂起事件的元素
- python - 没有自动调整散点图文本元素
- python - NameError: 名称 *model* 未定义;多对多字段/外键
- xaml - 使用透明的 BckgroundColor 显示按钮动画
- linux - 使用 Centreon 检查 linux 服务器上的可用更新
- typescript - 如何计算 OneToMany 关系?
- java - 为什么 z 轴上的旋转与 x 和 y 轴上的旋转表现不同?
- python - Python正则表达式查找3个数字的序列,后跟特定的字符串
- css - 使用 css :hover 旋转 SVG 元素只会导致元素闪烁
- java - Java Selenium UI Test BDD:如何在测试尚未完成时将测试结果设置为失败或通过?