DBMS_CLOUD para la gestión de acceso
En esta sección, se tratan los subprogramas DBMS_CLOUD
utilizados para la gestión de acceso.
Temas relacionados
Requisitos
Como desarrollador, puede utilizar procedimientos DBMS_CLOUD con instancias de Autonomous Database desplegadas en Oracle Public Cloud, Multicloud o Exadata Cloud@Customer.
En función de la opción de despliegue, se deben cumplir los siguientes requisitos para utilizar los procedimientos DBMS_CLOUD con los proveedores de servicios Amazon S3, Azure Blob Storage y Google Cloud Storage.
- Cree un gateway de NAT en la red virtual en la nube (VCN) en la que residan los recursos de Autonomous Database siguiendo las instrucciones de Creación de un gateway de NAT de la Documentación de Oracle Cloud Infrastructure.
- Después de crear el gateway de NAT, agregue una regla de ruta y una regla de seguridad de salida a cada subred (en la VCN) en la que residan los recursos de Autonomous Database para que estos recursos puedan utilizar el gateway para obtener una clave pública de la instancia de Azure AD:
- Vaya a la página Detalles de subred de la subred.
- En el separador Información de Subred, haga clic en el nombre de la Tabla de Direcciones de la subred para mostrar su página Detalles de Tabla de Direcciones.
- En la tabla de Reglas de ruta existentes, compruebe si ya hay una regla con las siguientes características:
- Destino: 0.0.0.0/0
- Tipo de destino: gateway de NAT
- Destino: nombre del gateway de NAT que acaba de crear en la VCN
Si dicha regla no existe, haga clic en Agregar reglas de ruta y agregue una regla de ruta con estas características.
- Vuelva a la página Detalles de subred de la subred.
- En la tabla Listas de seguridad de la subred, haga clic en el nombre de la lista de seguridad de la subred para mostrar su página Detalles de lista de seguridad.
- En el menú lateral, en Recursos, haga clic en Reglas de salida.
- En la tabla de Reglas de salida existentes, compruebe si ya hay una regla con las siguientes características:
- Tipo de destino: CIDR
- Destino: 0.0.0.0/0
- Protocolo IP: TCP
- Rango de puertos de origen: 443
- Rango de puertos de destino: todos
Si dicha regla no existe, haga clic en Agregar Reglas de Salida y agregue una regla de salida con estas características.
La configuración del proxy HTTP en el entorno debe permitir que la base de datos acceda al proveedor de servicios en la nube.
Note:
La configuración de red, incluido el proxy HTTP, solo se puede editar hasta que la infraestructura de Exadata tenga el estado Necesita activación. Una vez activada, no puede editar esa configuración.La configuración de un proxy HTTP para una infraestructura de Exadata ya aprovisionada necesita una solicitud de servicio (SR) en My Oracle Support. Consulte Creación de una solicitud de servicio en My Oracle Support para obtener más información.
DBMS_CLOUD Subprogramas para la gestión de acceso
Los subprogramas para la gestión de credenciales en el paquete DBMS_CLOUD, incluidas la creación, la supresión y la actualización de credenciales.
Subprograma | Descripción |
---|---|
Este procedimiento almacena credenciales del servicio en la nube en Autonomous Database. | |
Este procedimiento elimina una credencial existente de Autonomous Database. | |
Este procedimiento actualiza los atributos de las credenciales del servicio en la nube en Autonomous Database. |
Procedimiento CREATE_CREDENTIAL
Este procedimiento almacena credenciales del servicio en la nube en Autonomous Database.
Utilice las credenciales de servicio en la nube almacenadas para acceder al servicio en la nube para la carga de datos, para consultar datos externos que residen en la nube o para otros casos cuando utilice los procedimientos DBMS_CLOUD
con un parámetro credential_name
.
Sintaxis
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
username IN VARCHAR2,
password IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
user_ocid IN VARCHAR2,
tenancy_ocid IN VARCHAR2,
private_key IN VARCHAR2,
fingerprint IN VARCHAR2);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre de la credencial que se va a almacenar. El parámetro |
|
Los argumentos |
|
Los argumentos |
|
Especifica el OCID del usuario. Consulte Dónde obtener el OCID del arrendamiento y el OCID del usuario para obtener más información sobre cómo obtener el OCID del usuario. |
|
Especifica el OCID del arrendamiento. Consulte Dónde obtener el OCID del arrendamiento y el OCID del usuario para obtener más información sobre cómo obtener el OCID del arrendamiento. |
|
Especifica la clave privada generada. Las claves privadas generadas con una frase de contraseña no están soportadas. Debe generar la clave privada sin una frase de contraseña. Consulte Cómo generar una clave de firma de API para obtener más información sobre la generación de un par de claves en formato PEM. |
|
Especifica una huella. Después de cargar una clave pública generada en la cuenta del usuario, se muestra la huella en la consola. Utilice la huella mostrada para este argumento. Consulte Cómo obtener la huella de la clave y Cómo generar una clave de firma de API para obtener más información. |
Notas de uso
-
Esta operación almacena las credenciales en la base de datos en un formato cifrado.
-
Puede ver las credenciales en el esquema consultando la tabla
user_credentials
. -
El usuario
ADMIN
puede ver todas las credenciales consultando la tabladba_credentials
. -
Solo tiene que crear credenciales una vez, a menos que cambien las credenciales del servicio en la nube. Una vez almacenadas las credenciales, puede utilizar el mismo nombre de credencial para los procedimientos
DBMS_CLOUD
que requieren un parámetrocredential_name
. -
Este procedimiento está sobrecargado. Si proporciona uno de los atributos de autenticación basados en clave,
user_ocid
,tenancy_ocid
,private_key
ofingerprint
, se asume que la llamada es una credencial basada en clave de firma de Oracle Cloud Infrastructure. -
Puede mostrar las credenciales de la vista
ALL_CREDENTIALS
. Por ejemplo, ejecute el siguiente comando para mostrar las credenciales:SELECT credential_name, username, comments FROM all_credentials;
Credenciales de Oracle Cloud Infrastructure (tokens de autenticación)
Para Oracle Cloud Infrastructure, username
es el nombre de usuario de Oracle Cloud Infrastructure. password
es el token de autenticación de Oracle Cloud Infrastructure. Consulte Trabajar con token de autenticación.
Por ejemplo:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'DEF_CRED_NAME',
username => 'adb_user@example.com',
password => 'password' );
END;
/
Utilice credenciales basadas en token de autenticación al autenticar llamadas a OCI Object Storage. Para las llamadas a cualquier otro tipo de servicio en la nube de Oracle Cloud Infrastructure, utilice las credenciales basadas en claves de firma de Oracle Cloud Infrastructure.
Credenciales basadas en claves de firma de Oracle Cloud Infrastructure
Utilice los parámetros relacionados con la clave de firma de Oracle Cloud Infrastructure, que incluyen: user_ocid
, tenancy_ocid
, private_key
y fingerprint
, con la autenticación de claves de firma de Oracle Cloud Infrastructure.
Por ejemplo:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => ‘OCI_KEY_CRED’,
user_ocid => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
tenancy_ocid => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
private_key => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
fingerprint => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/
Las claves privadas generadas con una frase de contraseña no están soportadas. Debe generar la clave privada sin una frase de contraseña. Consulte Cómo generar una clave de firma de API para obtener más información.
Credenciales de Amazon Web Services (AWS)
Si los archivos de origen residen en Amazon S3 o llama a una API de AWS, username
es el identificador de clave de acceso de AWS, y password
es la clave de acceso secreta de AWS. Consulte AWS Identity and Access Management.
Credenciales de Microsoft Azure
Si los archivos de origen residen en Azure Blob Storage o va a llamar a una API de Azure, username
es el nombre de su cuenta de almacenamiento de Azure, y password
es una clave de acceso de cuenta de almacenamiento de Azure. Consulte la sección acerca de las cuentas de almacenamiento de Azure.
Credenciales compatibles con Amazon S3
Servicio | Información de credenciales |
---|---|
Google Cloud Storage |
Si sus archivos de origen residen en Google Cloud Storage o va a llamar a las API de Google Cloud Storage, debe definir un proyecto de Google por defecto y obtener una clave HMAC para crear credenciales que proporcionar con URL compatibles con S3 de Google Cloud Storage. Utilice el identificador de clave HMAC como nombre de usuario, y el secreto HMAC como contraseña. Consulte la sección sobre proyectos y la sección sobre claves HMAC para obtener más información. |
Procedimiento DROP_CREDENTIAL
Este procedimiento elimina una credencial existente de Autonomous Database.
Sintaxis
DBMS_CLOUD.DROP_CREDENTIAL
(
credential_name IN VARCHAR2);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre de la credencial que se va a eliminar. |
Procedimiento UPDATE_CREDENTIAL
Este procedimiento actualiza un atributo con un nuevo valor para un credential_name
especificado.
Utilice las credenciales almacenadas para la carga de datos, para consultar datos externos que residan en la nube o dondequiera que utilice procedimientos DBMS_CLOUD
con un parámetro credential_name
.
Sintaxis
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name IN VARCHAR2,
attribute IN VARCHAR2,
value IN VARCHAR2);
Parámetros
parámetro | Descripción |
---|---|
|
Nombre de la credencial que se va a actualizar. |
|
Nombre del atributo que se va a actualizar. Para una credencial de tipo nombre de usuario/contraseña, los valores válidos de Consulte Procedimiento CREATE_CREDENTIAL para obtener más información. |
|
Nuevo valor para el atributo especificado. |
Notas de uso
-
El valor de nombre de usuario es sensible a mayúsculas y minúsculas. No puede contener comillas dobles ni espacios.
-
El usuario
ADMIN
puede ver todas las credenciales consultandodba_credentials
. -
Solo tiene que crear credenciales una vez, a menos que cambien las credenciales del servicio en la nube. Una vez almacenadas las credenciales, puede utilizar el mismo nombre de credencial para los procedimientos
DBMS_CLOUD
que requieren un parámetrocredential_name
. -
Puede mostrar las credenciales de la vista
ALL_CREDENTIALS
. Por ejemplo, ejecute el siguiente comando para mostrar las credenciales:SELECT credential_name, username, comments FROM all_credentials;
Ejemplos
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'OBJ_STORE_CRED',
attribute => 'PASSWORD',
value => 'password');
END;
/
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'ARN_CRED',
attribute => 'aws_role_arn',
value => 'NEW_AWS_ARN');
END;
/