Publicado el :
Administración CREATION_INTERNE

Extracción de información sobre las bibliotecas de bases de datos desde los metadatos

Este código también está disponible en: Deutsch English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
El programa se conecta a un servidor de metadatos SAS© 9 para identificar todas las bibliotecas de tipo base de datos (`IsDBMSLibname = '1'`). Para cada biblioteca encontrada, recupera información asociada como el nombre de la biblioteca, el usuario de inicio de sesión predeterminado, el servidor de aplicaciones, el esquema, el nombre del servidor de bases de datos, la fuente de datos y el dominio de autenticación. Los resultados se almacenan en una tabla `work.libinfo`. Este código es específico de SAS© 9 y no es compatible con SAS© Viya ya que utiliza las funciones `metadata_*` que interactúan con el antiguo servidor de metadatos.
Análisis de datos

Type : CREATION_INTERNE


Los datos se generan dinámicamente consultando los metadatos del servidor SAS usando las funciones específicas `metadata_resolve`, `metadata_getnobj`, `metadata_getattr` y `metadata_getnasn`. El script no lee ningún dato externo o de SASHELP.

1 Bloque de código
OPTIONS
Explicación :
Este bloque configura las opciones globales de la sesión SAS para establecer una conexión con un servidor de metadatos SAS 9. Especifica la dirección del servidor, el puerto, las credenciales, el nombre del repositorio y el protocolo de conexión. Estos parámetros son esenciales para el uso de las funciones `metadata_*` en los pasos siguientes.
¡Copiado!
1options
2 metaserver="<hostname>"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="<password>"
6 metarepository=Foundation
7 metaprotocol=bridge;
2 Bloque de código
DATA STEP Data
Explicación :
Este DATA STEP crea la tabla `work.libinfo`. Comienza buscando en los metadatos de SAS todas las bibliotecas de tipo DBMS a través de `metadata_resolve`. Luego, itera sobre cada biblioteca encontrada para extraer atributos específicos (nombre de la biblioteca, usuario, esquema, servidor de base de datos, etc.) utilizando una serie de funciones `metadata_get...`. La información recopilada para cada biblioteca se añade como una nueva fila en la tabla de salida.
¡Copiado!
1DATA work.libinfo;
2 
3/*declare and initialize variables */
4 LENGTH
5 type user schema $ 20
6 lib_uri lib_name app_uri app_name schema_uri login_uri dom_uri
7 dbms_uri dbms_name conn_uri prop_uri datasrc authdomain $ 50
8 id $ 17;
9 keep lib_name app_name user schema dbms_name datasrc authdomain;
10 call missing(of _character_);
11 
12 obj="omsobj:SASLibrary? @IsDBMSLibname = '1'";
13 
14 /* Search Metadata for libraries */
15 
16 libcount=metadata_resolve(obj,type,id);
17 put "INFO: Found " libcount "database libraries.";
18 /* for each library found, extract name and associated properties */
19 /*
20 default login,
21 first associated application server,
22 schema,
23 database server
24 */
25 IF libcount > 0 THEN DO n=1 to libcount;
26 
27 rc=metadata_getnobj(obj,n,lib_uri);
28 rc=metadata_getattr(lib_uri,"Name",lib_name);
29 rc=metadata_getnasn(lib_uri,"DefaultLogin",1,login_uri);
30 rc=metadata_getattr(login_uri,"UserID",user);
31 rc=metadata_getnasn(lib_uri,"DeployedComponents",1,app_uri);
32 rc=metadata_getattr(app_uri,"Name",app_name);
33 rc=metadata_getnasn(lib_uri,"UsingPackages",1,schema_uri);
34 rc=metadata_getattr(schema_uri,"SchemaName",schema);
35 rc=metadata_getnasn(schema_uri,"DeployedComponents",1,dbms_uri);
36 rc=metadata_getattr(dbms_uri,"Name",dbms_name);
37 rc=metadata_getnasn(dbms_uri,"SourceConnections",1,conn_uri);
38 rc=metadata_getnasn(conn_uri,"Properties",1,prop_uri);
39 rc=metadata_getattr(prop_uri,"DefaultValue",datasrc);
40 rc=metadata_getnasn(conn_uri,"Domain",1,dom_uri);
41 rc=metadata_getattr(dom_uri,"Name",authdomain);
42 OUTPUT; /* Push results to table */
43 
44 END;
45 ELSE put "INFO: No libraries to resolve.";
46RUN;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Copyright © 2023, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0