Puede crear un objeto de autorización, que almacena las credenciales de un usuario de forma cifrada para los conectores de Teradata. Los objetos de autorización almacenan las credenciales del usuario y se utilizan en servidores externos para llevar estas credenciales al sistema remoto para su autenticación.
- Cuando ese usuario crea la autorización mediante AS INVOKER TRUSTED, la autorización se almacena de forma predeterminada en la base de datos de usuario.
- Las credenciales para el sistema de seguridad no deben revelarse a otras personas y al objeto de autorización solo pueden acceder los usuarios con privilegios para esa base de datos.
Puede utilizar la asignación de varios a uno entre varios usuarios del sistema Teradata y un usuario del sistema remoto para simplificar la administración. Solo el creador de la autorización necesita saber las credenciales del usuario en el sistema de seguridad remoto. Cuando se crea la autorización mediante AS DEFINER TRUSTED, esta se almacena de forma predeterminada en la base de datos TD_SERVER_DB, que pone a disposición la autorización a nivel global.
Para una conexión de Teradata a Presto, cree un objeto de autorización para su utilización en la cláusula USING del servidor externo. Teradata transmite las credenciales en un objeto de autorización al conector de Presto; a continuación, este último autentica al usuario antes de enviar la consulta al origen de datos.
Donde el servidor externo busca el objeto de autorización
Cuando se utiliza INVOKER, la autorización se almacena en la base de datos del usuario; cada usuario puede utilizar sus propias credenciales para iniciar sesión en el sistema remoto. Cuando un servidor externo está configurado con la palabra clave INVOKER y no se especifica ningún valor para el nombre de la base de datos (dbname), los conectores de Presto o Hive buscan automáticamente la autorización en la base de datos de usuario del usuario de la sesión.
Uso de INVOKER
En este ejemplo se crea el objeto de autorización remote_presto1 en la base de datos de usuario del creador. Si el creador es td_user, entonces td_user.remote_presto1 es el nombre completo del objeto.
create authorization remote_presto1 as invoker trusted user 'active_user' password 'active_pass';
En este ejemplo se crea un objeto de servidor externo que utiliza el objeto de autorización de remote_presto1.
create foreign server Presto_1 external security invoker trusted remote_presto1 using link('td1_presto1') version('active') DO IMPORT WITH TD_SYSFNLIB.QGInitiatorImport, DO EXPORT WITH TD_SYSFNLIB.QGInitiatorExport;
El valor de link de td1_presto1 se crea en el portlet QueryGrid. El enlace define las redes de inicio y de destino, y especifica una directiva de comunicación que define las reglas para la transferencia de datos entre los conectores, entre otras propiedades.
Cuando un servidor externo está configurado con la palabra clave DEFINER y no se especifica ningún valor para el nombre de la base de datos (dbname), el conector de Teradata busca automáticamente la autorización en la base de datos TD_SERVER_DB.
Uso de DEFINER
En este ejemplo se crea el objeto de autorización remote_presto1.
create authorization td_server_db.remote_presto1 as definer trusted user 'active_proxy_user' password 'active_proxy_pass';
En este ejemplo se crea un objeto de servidor externo que utiliza el objeto de autorización remote_presto1.
create foreign server Presto_1 external security definer trusted remote_presto1 using link('td1_presto1') version('active') DO IMPORT WITH TD_SYSFNLIB.QGInitiatorImport, DO EXPORT WITH TD_SYSFNLIB.QGInitiatorExport;
El valor de link de td1_presto1 se crea en el portlet QueryGrid. El enlace define las redes de inicio y de destino, y especifica una directiva de comunicación que define las reglas para la transferencia de datos entre los conectores, entre otras propiedades.
Para obtener más información, consulte CREATE AUTHORIZATION y REPLACE AUTHORIZATION.