Permissions 更改由我的作业创建的每个数据集的所有者和权限

Permissions 更改由我的作业创建的每个数据集的所有者和权限,permissions,sas,dataset,pipe,chown,Permissions,Sas,Dataset,Pipe,Chown,我需要更改作业生成的每个数据集的所有者和权限。我需要在我的后期处理过程中包括这一点。我可以在SAS代码中使用X或pipe使用chown命令来更改最新创建的数据集的权限。建议获取作业中创建的所有永久数据集列表的方法。当您说“永久数据集”时,您的意思必须是这些数据集存储在一个或多个位置。为什么不直接使用filename test pipe“dir/b/s X:\xxxxxx\*.sas7dbat”来获取列表?没有SAS开/关选项“日志记录”功能可以自动识别创建数据集的运行者/作业。安装在big ir

我需要更改作业生成的每个数据集的所有者和权限。我需要在我的后期处理过程中包括这一点。我可以在SAS代码中使用X或pipe使用chown命令来更改最新创建的数据集的权限。建议获取作业中创建的所有永久数据集列表的方法。

当您说“永久数据集”时,您的意思必须是这些数据集存储在一个或多个位置。为什么不直接使用
filename test pipe“dir/b/s X:\xxxxxx\*.sas7dbat”
来获取列表?

没有SAS开/关选项“日志记录”功能可以自动识别创建数据集的运行者/作业。安装在big iron(大型机)操作系统或OpenVMS中的SAS可能由操作系统自动完成

您知道创建新数据集时使用的libnames的

一种方法依赖于
查找
选项
-更新的

-更新的文件
文件的修改时间比文件的修改时间晚。如果文件是符号链接并且-H选项或-L选项有效,则始终使用它指向的文件的修改时间

所以你想

  • 作业开始-创建标记文件
  • 作业结束-查找比标记文件新的文件,并对其执行
    chown
    命令
EAX示例:

libname joblib '~/myjobs/sasdata';

* create marker file;
%sysexec touch /tmp/job-start.tag

* sas code;

* chown and chmod each newer file;
%sysexec find ~/myjobs/sasdata -type f -newer /tmp/job-start.tag -exec chmod 755 {} \%str(;);
%sysexec find ~/myjobs/sasdata -type f -newer /tmp/job-start.tag -exec chown newower {} \%str(;);
从作业中标记SAS数据集的其他方法

其思想是以区别于其他作业的方式分离、标记或标记数据集

路1作业创建独立的数据集集:

为每次运行创建一个新的作业唯一文件夹:

  • 在源代码中使用公共libref,例如
    作业
    ,但要使其指向新文件夹
  • 运行作业,创建新的数据集
  • 执行作业后调整
  • 将新数据集移动到永久存储位置
    PERM
路2作业源依赖于
PERM
中的数据集,无法更改

使用库路径连接:

  • 在作业启动之前更改libname

    libname PERM("将有多个作业并行运行,并在库中创建多个数据集,我只想更新与当前作业相关的数据集。如果我理解正确,您的代码将更新库中创建标记文件后创建的所有数据集,我不需要这些数据集。谢谢Richard,我将尝试使用thir方法将每个数据集附加一个时间戳,然后稍后删除该时间戳。