DBMS_CLOUD pour la gestion de l'accès
Cette section décrit les sous-programmes DBMS_CLOUD
utilisés pour la gestion des accès.
Rubriques connexes
Conditions requises
En tant que développeur, vous pouvez utiliser des procédures DBMS_CLOUD avec des bases de données Autonomous Database déployées sur Oracle Public Cloud, Multicloud ou Exadata Cloud@Customer.
Selon le choix de déploiement, les préalables suivants doivent être satisfaits pour utiliser les procédures DBMS_CLOUD avec les fournisseurs de services Amazon S3, Azure Blob Storage et Google Cloud Storage.
- Créez une passerelle NAT dans le réseau en nuage virtuel (VCN) où résident vos ressources Autonomous Database en suivant les instructions sous Créer une passerelle NAT dans la documentation sur Oracle Cloud Infrastructure.
- Après avoir créé la passerelle NAT, ajoutez une règle de routage et une règle de sécurité de trafic sortant à chaque sous-réseau (dans le VCN) où résident des ressources Autonomous Database afin que ces ressources puissent utiliser la passerelle pour obtenir une clé publique de votre instance Azure AD :
- Allez à la page Détails du sous-réseau correspondante.
- Dans l'onglet Informations sur le sous-réseau, cliquez sur le nom de la table de routage du sous-réseau pour afficher la page Détails de la table de routage.
- Dans la table des règles de routage existantes, vérifiez s'il existe déjà une règle présentant les caractéristiques suivantes :
- Destination : 0.0.0.0/0
- Type de cible : Passerelle NAT
- Target : Nom de la passerelle NAT que vous venez de créer dans le VCN
Si une telle règle n'existe pas, cliquez sur Ajouter des règles de routage et ajoutez une règle de routage avec ces caractéristiques.
- Retournez à la page Détails du sous-réseau.
- Dans la table Listes de sécurité du sous-réseau, cliquez sur le nom de la liste de sécurité du sous-réseau pour afficher la page Détails de la liste de sécurité.
- Dans le menu latéral, sous Ressources, cliquez sur Règles de trafic sortant.
- Dans la table des règles de trafic sortant existantes, vérifiez s'il existe déjà une règle présentant les caractéristiques suivantes :
- Type de destination : CIDR
- Destination : 0.0.0.0/0
- Protocole IP : TCP
- Intervalle de ports sources : 443
- Intervalle de ports de destination : Tout
Si une telle règle n'existe pas, cliquez sur Ajouter des règles de trafic sortant et ajoutez une règle de trafic sortant avec ces caractéristiques.
Les paramètres de mandataire HTTP de votre environnement doivent permettre à la base de données d'accéder au fournisseur de services en nuage.
Note :
La configuration réseau, y compris le mandataire HTTP, ne peut être modifiée que jusqu'à ce que l'infrastructure Exadata ait l'état Activation requise. Une fois activé, vous ne pouvez pas modifier ces paramètres.La configuration d'un mandataire HTTP pour une infrastructure Exadata déjà provisionnée nécessite une demande de service dans My Oracle Support. Pour plus de détails, voir Créer une demande de service dans My Oracle Support.
DBMS_CLOUD Sous-programmes pour la gestion de l'accès
Sous-programmes de gestion des données d'identification de l'ensemble DBMS_CLOUD, permettant notamment de créer, supprimer et mettre à jour les données d'identification.
Sous-programme | Description |
---|---|
Cette procédure stocke les données d'identification du service en nuage dans la base de données autonome. | |
Cette procédure supprime des données d'identification existantes de la base de données autonome. | |
Cette procédure met à jour les attributs des données d'identification du service en nuage dans la base de données autonome. |
Procédure CREATE_CREDENTIAL
Cette procédure stocke les données d'identification du service en nuage dans la base de données autonome.
Utilisez les données d'identification du service en nuage stockées pour accéder au service pour charger des données, pour interroger des données externes résidant dans le nuage ou pour d'autres cas, lorsque vous utilisez les procédures DBMS_CLOUD
avec un paramètre credential_name
.
Syntaxe
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);
Paramètres
Paramètre | Description |
---|---|
|
Nom des données d'identification à stocker. Le paramètre |
|
Les arguments |
|
Les arguments |
|
Spécifie l'OCID de l'utilisateur. Pour plus de détails sur l'obtention de l'OCID de l'utilisateur, voir Où obtenir l'OCID de la location et l'OCID de l'utilisateur. |
|
Spécifie l'OCID de la location. Pour plus de détails sur l'obtention de l'OCID de la location, voir Où obtenir l'OCID de la location et l'OCID de l'utilisateur. |
|
Spécifie la clé privée générée. Les clés privées générées avec une phrase secrète ne sont pas prises en charge. Vous devez générer la clé privée sans phrase secrète. Pour plus de détails sur la génération d'une paire de clés au format PEM, voir Comment générer une clé de signature d'API. |
|
Spécifie une empreinte numérique. Une fois qu'une clé publique générée est chargée dans le compte de l'utilisateur, l'empreinte numérique s'affiche dans la console. Utilisez l'empreinte numérique affichée pour cet argument. Pour plus d'informations, voir Comment obtenir l'empreinte numérique de la clé et Comment générer une clé de signature d'API. |
Notes d'utilisation
-
Cette opération stocke les données d'identification dans la base de données dans un format chiffré.
-
Vous pouvez voir les données d'identification de votre schéma en interrogeant la table
user_credentials
. -
L'utilisateur
ADMIN
peut voir toutes les données d'identification en interrogeant la tabledba_credentials
. -
Les données d'identification ne doivent être créées qu'une seule fois, sauf si vos données d'identification pour le service en nuage changent. Une fois que vous avez stocké les données d'identification, vous pouvez utiliser le même nom pour les procédures
DBMS_CLOUD
qui nécessitent un paramètrecredential_name
. -
Cette procédure est surchargée. Si vous fournissez l'un des attributs d'authentification basés sur une clé,
user_ocid
,tenancy_ocid
,private_key
oufingerprint
, on suppose qu'il s'agit de données d'identification basées sur une clé de signature Oracle Cloud Infrastructure. -
Vous pouvez lister les données d'identification dans la vue
ALL_CREDENTIALS
. Par exemple, exécutez la commande suivante pour lister les données d'identification :SELECT credential_name, username, comments FROM all_credentials;
Données d'identification Oracle Cloud Infrastructure (jetons d'authentification)
Pour Oracle Cloud Infrastructure, username
est votre nom d'utilisateur Oracle Cloud Infrastructure. password
est votre jeton d'authentification Oracle Cloud Infrastructure. Voir Utilisation de jetons d'authentification.
Par exemple :
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'DEF_CRED_NAME',
username => 'adb_user@example.com',
password => 'password' );
END;
/
Utilisez des données d'identification basées sur un jeton d'authentification lorsque vous authentifiez des appels au service Stockage d'objets OCI. Pour les appels à tout autre type de service en nuage Oracle Cloud Infrastructure, utilisez les données d'identification basées sur une clé de signature Oracle Cloud Infrastructure.
Données d'identification basées sur une clé de signature Oracle Cloud Infrastructure
Utilisez les paramètres liés à la clé de signature Oracle Cloud Infrastructure, notamment : user_ocid
, tenancy_ocid
, private_key
et fingerprint
avec l'authentification par clés de signature Oracle Cloud Infrastructure.
Par exemple :
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;
/
Les clés privées générées avec une phrase secrète ne sont pas prises en charge. Vous devez générer la clé privée sans phrase secrète. Pour plus d'informations, voir Comment générer une clé de signature d'API.
Données d'identification Amazon Web Services (AWS)
Si vos fichiers sources résident dans Amazon S3 ou que vous appelez une API AWS, username
est votre ID de clé d'accès AWS et password
est votre clé d'accès secrète AWS. Voir Gestion des identités et des accès AWS.
Données d'identification Microsoft Azure
Si vos fichiers sources résident dans le service Azure Blob Storage ou que vous appelez une API Azure, username
est votre nom de compte de stockage Azure et password
est une clé d'accès à un compte de stockage Azure. Voir À propos des comptes de stockage Azure.
Données d'identification compatibles avec Amazon S3
Service | Informations sur les données d'identification |
---|---|
Google Cloud Storage |
Si vos fichiers sources résident dans Google Cloud Storage ou que vous appelez des API Google Cloud Storage, vous devez définir un projet Google par défaut et obtenir une clé HMAC pour créer des données d'identification à fournir avec les URL Google Cloud Storage compatibles avec S3. Utilisez l'ID de clé HMAC comme nom d'utilisateur et la clé secrète HMAC comme mot de passe. |
Procédure DROP_CREDENTIAL
Cette procédure supprime des données d'identification existantes de la base de données autonome.
Syntaxe
DBMS_CLOUD.DROP_CREDENTIAL
(
credential_name IN VARCHAR2);
Paramètres
Paramètre | Description |
---|---|
|
Nom des données d'identification à supprimer. |
Procédure UPDATE_CREDENTIAL
Cette procédure met à jour un attribut avec une nouvelle valeur pour un paramètre credential_name
spécifié.
Utilisez les données d'identification stockées pour charger des données, pour interroger des données externes résidant dans le nuage ou lorsque vous utilisez les procédures DBMS_CLOUD
avec un paramètre credential_name
.
Syntaxe
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name IN VARCHAR2,
attribute IN VARCHAR2,
value IN VARCHAR2);
Paramètres
Paramètre | Description |
---|---|
|
Nom des données d'identification à mettre à jour. |
|
Nom de l'attribut à mettre à jour. Pour les données d'identification de type nom d'utilisateur/mot de passe, les valeurs Pour plus d'informations, voir Procédure CREATE_CREDENTIAL. |
|
Nouvelle valeur pour l'attribut spécifié. |
Notes d'utilisation
-
La valeur du nom d'utilisateur est sensible à la casse. Il ne peut pas contenir de guillemets doubles ni d'espaces.
-
L'utilisateur
ADMIN
peut voir toutes les données d'identification en interrogeantdba_credentials
. -
Les données d'identification ne doivent être créées qu'une seule fois, sauf si vos données d'identification pour le service en nuage changent. Une fois que vous avez stocké les données d'identification, vous pouvez utiliser le même nom pour les procédures
DBMS_CLOUD
qui nécessitent un paramètrecredential_name
. -
Vous pouvez lister les données d'identification dans la vue
ALL_CREDENTIALS
. Par exemple, exécutez la commande suivante pour lister les données d'identification :SELECT credential_name, username, comments FROM all_credentials;
Exemples
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;
/