【问题标题】:How can I make a SAS dataset read only within a SAS program?如何使 SAS 数据集在 SAS 程序中只读?
【发布时间】:2014-08-18 15:50:42
【问题描述】:

如何在 SAS 程序中将 sas 数据表 (sas7bdat) 设置为只读? — 即使在会话之间,表也必须保持只读状态,尤其是当另一个用户注册库并尝试写入数据集时。一旦创建了这些表,我就不想再编辑它们——它们是其他人和我自己可能依赖的“时间点”参考表。能够锁定这些表并保证它们的表没有被意外更改将在每次使用这些表时节省大量数据验证。

我只希望防止可能意外更改表格的危险代码,例如:

PROC SORT 
    DATA = JUSTIN.myreadonlytable;
    BY 
        ref
        start_date;
RUN;

我不介意是否有人可以更改文件系统中的只读标志,但我希望 SAS 中的默认行为是在尝试写入表时出错。

【问题讨论】:

  • 为了使您的问题更清楚,您可以更改最初的句子以明确您是在谈论创建其他人不会修改的数据集,而不是关于如何更改您自己的程序以不修改数据集。
  • 我现在已经澄清了。我试试密码解决方案

标签: sas


【解决方案1】:

如果您想防止人们意外写入数据集,那么您需要分配一个alter 密码。

data test(alter="def");
 set sashelp.class;
run;

这可以防止在不以相同方式提供密码(或在弹出窗口中输入密码)的情况下更改(写入、替换、删除)数据集。

【讨论】:

  • 注意PWREQ=选项控制对话框出现或不出现,但似乎适用于后期使用,而不是初始创建。
【解决方案2】:

在 libname 上添加 ACCESS=READONLY 是一种选择。详情在这里:

http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000214133.htm

【讨论】:

  • 如果其他人在没有ACCESS=READONLY 命令的情况下在他们的会话中注册了库,这似乎不起作用。
  • 我认为您的问题可能并不完全清楚。
猜你喜欢
  • 1970-01-01
  • 2010-10-08
  • 2017-01-01
  • 2021-03-08
  • 1970-01-01
  • 2023-04-07
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多