Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SAS程序中使SAS数据集只读?_Sas - Fatal编程技术网

如何在SAS程序中使SAS数据集只读?

如何在SAS程序中使SAS数据集只读?,sas,Sas,如何在sas程序中将sas数据表(sas7bdat)设置为只读即使在会话之间,该表也必须保持只读,特别是当其他用户注册库并尝试写入数据集时。一旦创建了这些表,我就不想再编辑它们了——它们是其他人和我自己可能依赖的“时间点”参考表。如果能够锁定这些表并保证它们没有被意外更改,那么每次使用这些表时都可以节省大量的数据验证 我只希望防止可能意外改变表格的危险代码,例如: PROC SORT DATA = JUSTIN.myreadonlytable; BY ref

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

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

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

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

libname上的Add ACCESS=READONLY是一个选项。详情如下:


如果要防止人们意外写入数据集,则需要分配
alter
密码

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

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

如果其他人在会话中没有
ACCESS=READONLY
命令注册库,这似乎不起作用。我认为您的问题可能不完全清楚。注意
PWREQ=
选项控制对话框的显示或不显示,但似乎适用于以后的使用,不是最初的创建。为了让你的问题更清楚,你可以更改最初的句子,以明确你所说的是创建一个别人不会修改的数据集,而不是如何更改自己的程序以不修改数据集。我现在已经澄清了这一点。我将尝试密码解决方案