%let user=scott;
%let password=tiger;
libname ora oracle user=&user password=&password;
options mprint mlogic symbolgen;
dm log 'clear';
这样我们可以为数据库提供安全保障吗?
所以,我正在尝试为我的连接建立安全性,如果我清除我的日志,没有人能看到它。但是一旦我关闭我的sas部分,我创建的库将会消失,所以,请你帮助我创建永久性的库以确保在该部分关闭后与oracle有连接。
答案 0 :(得分:1)
您可以将libname语句添加到autoexec.sas文件中。如果您需要创建一个文件,SAS就是如何查找该文件的。 http://support.sas.com/kb/19/244.html
您可以对密码进行编码,这样您就不必将其存储为纯文本。看看PROC PWENCODE - http://support.sas.com/documentation/cdl/en/secref/66817/HTML/default/viewer.htm#n0dc6in0v7nfain1f2whl6f5x66p.htm
答案 1 :(得分:1)
确保oracle凭据安全性的另一种方法是在LIBNAME语句中使用dbprompt=yes
。在这种情况下,您不需要在语句中包含用户名和密码 - 每次分配库时都会提示(在弹出窗口中)。这当然不太方便,特别是如果您希望为每个会话分配此库。但是安全值得做出一些牺牲,我想......
它适用于SAS Base接口,但不适用于Enterprise Guide(当SAS服务器与EG本身位于同一本地计算机上时,几乎总是如此):http://support.sas.com/kb/7/980.html
在这种情况下,您可以使用EG功能(提示管理器)创建用户提示。这些提示会将您输入的提示窗口中的登录名和密码分配给宏变量,然后您可以在LIBNAME语句中引用这些变量。