Sas 从enterprise guide server中删除永久库

Sas 从enterprise guide server中删除永久库,sas,Sas,每当我登录到《企业指南》中的远程服务器时,我都会被100个默认libname(我认为它们已被指定为默认配置)弄得不知所措(我没有使用libname语句单独指定它们) 这使得我很难找到使用代码分配的库。如果我在库上单击鼠标右键并单击“取消分配”,则会抛出一个错误(加上不可能一个接一个地单击鼠标右键并取消分配所有库) 我猜所有这些库默认都是在某种配置文件中分配的,但我找不到任何解释如何分配的链接。我确实看了配置文件,但可能我不明白其中写了什么 即使我以某种方式隐藏它们,那也足够了 我确实看了这个,

每当我登录到《企业指南》中的远程服务器时,我都会被100个默认libname(我认为它们已被指定为默认配置)弄得不知所措(我没有使用libname语句单独指定它们)

这使得我很难找到使用代码分配的库。如果我在库上单击鼠标右键并单击“取消分配”,则会抛出一个错误(加上不可能一个接一个地单击鼠标右键并取消分配所有库)

我猜所有这些库默认都是在某种配置文件中分配的,但我找不到任何解释如何分配的链接。我确实看了配置文件,但可能我不明白其中写了什么

即使我以某种方式隐藏它们,那也足够了

我确实看了这个,但我无法找出libnames存储在哪里

PS我正在使用SAS EG 7.13和SAS 9.4

编辑:当我尝试直接取消分配libname时,它只会说“发生了意外错误”

如果我试图使用@Richard的代码取消分配,那么它会说

Warning: Library <Name> is not assigned in this scope
警告:未在此范围内分配库

我注意到我创建的所有库都是由引擎
V9
创建的,其中预定义库是由引擎
base

创建的。此示例代码将清除所有库引用,但您列出的库除外:

%let _CLEAR_LIBNAMES_STATEMENT=;

proc sql;
  reset noprint;
  select distinct "LIBNAME " || libname
  into :_CLEAR_LIBNAMES_STATEMENT separated by ";"
  from DICTIONARY.LIBNAMES
  where libname not in (
  'LIST OF LIBNAMES TO KEEP or CANT BE CLEARED'
  , 'WORK'
  , 'SASUSER'
  , 'SASHELP'
  , 'MAPS'
  , 'MAPSGFK'
  , 'MAPSSAS'
  )
  ;

&_CLEAR_LIBNAMES_STATEMENT;
%symdel _CLEAR_LIBNAMES_STATEMENT;
在服务和连接过程中有许多点可以定义libref。您声明“抛出错误”,但不声明错误

对于EG中的SASAPP文件夹,库可能由服务器autoexec和管理控制台设置设置。还可以在用户的EG首选项(工具/选项/SAS程序/连接时提交)中为每个用户创建库名


您可以在自己的例如连接首选项中运行libname清除代码,或者作为项目启动代码块运行,或者如果libname一刀切的方法影响众多用户,则可以与SAS服务器管理员协作。

此示例代码将清除除您列出的libref之外的所有libref:

%let _CLEAR_LIBNAMES_STATEMENT=;

proc sql;
  reset noprint;
  select distinct "LIBNAME " || libname
  into :_CLEAR_LIBNAMES_STATEMENT separated by ";"
  from DICTIONARY.LIBNAMES
  where libname not in (
  'LIST OF LIBNAMES TO KEEP or CANT BE CLEARED'
  , 'WORK'
  , 'SASUSER'
  , 'SASHELP'
  , 'MAPS'
  , 'MAPSGFK'
  , 'MAPSSAS'
  )
  ;

&_CLEAR_LIBNAMES_STATEMENT;
%symdel _CLEAR_LIBNAMES_STATEMENT;
在服务和连接过程中有许多点可以定义libref。您声明“抛出错误”,但不声明错误

对于EG中的SASAPP文件夹,库可能由服务器autoexec和管理控制台设置设置。还可以在用户的EG首选项(工具/选项/SAS程序/连接时提交)中为每个用户创建库名


您可以在自己的例如连接首选项中运行libname清除代码,或者作为项目启动代码块运行,或者如果libname一刀切的方法影响众多用户,则可以与SAS服务器管理员协作。

您可以尝试在会话开始时使用
libname\u all\u clear

但是,这不会删除预先分配的库。为此,您需要更新SAS管理控制台中的设置,如下所示:


不过,确实不需要删除这些库-您可以让管理员设置权限,以便您(通过您的组)只拥有对需要访问的库的读取元数据权限。

您可以尝试在会话开始时使用
libname\u all\uclear

但是,这不会删除预先分配的库。为此,您需要更新SAS管理控制台中的设置,如下所示:


不过,确实不需要删除这些库-您可以让管理员设置权限,这样您(通过您的组)就可以只对需要访问的库拥有读取元数据的权限。

谢谢您的回答。我添加了一个编辑,其中包含了我在尝试您的代码时遇到的错误。正如您提到的,它们必须通过服务器autoexec和管理控制台设置进行设置,但我正在试图找到一种方法来覆盖它。我认为SAS服务器管理员不可能完成这项工作,因为有数千名用户,我不知道有多少用户实际使用这些默认库感谢您的回答。我添加了一个编辑,其中包含了我在尝试您的代码时遇到的错误。正如您提到的,它们必须通过服务器autoexec和管理控制台设置进行设置,但我正在试图找到一种方法来覆盖它。我认为SAS服务器管理员不可能完成这项工作,因为有数千名用户,我不知道有多少人实际使用这些默认的librariesOk,所以基本上这意味着我自己不能正确地完成这项工作?因为从SAS管理控制台,我可以将所有预先分配的库视为
只读
,并且只有管理员可以更改设置。但是,简单地为我删除元数据权限,这样就不会弄乱我的库列表,这是一个好主意!虽然不幸的是,我需要与它取得联系来解决这个问题。是的,你需要管理员权限!是的,元数据权限是解决这个问题的正确方法。好吧,那么基本上这意味着我自己做不好?因为从SAS管理控制台,我可以将所有预先分配的库视为
只读
,并且只有管理员可以更改设置。但是,简单地为我删除元数据权限,这样就不会弄乱我的库列表,这是一个好主意!虽然不幸的是,我需要与它取得联系来解决这个问题。是的,你需要管理员权限!是的,元数据权限是解决此问题的正确方法。提示。在libref前面加上
\uu
AA
,使其显示在顶部。至少你可以完成一些工作。提示。在libref前面加上
\uu
AA
,使其显示在顶部。至少你可以完成一些工作。