Comment puis-je créer lecture seule liaison de base de données oracle
De considérer les éléments suivants scenerio....
J'ai un master de l'utilisateur MAÎTRE.
J'ai un utilisateur de test TEST.
Pour les utilisateurs de la structure de la table sont les mêmes. L'utilisateur peuvent être sur différents serveurs oracle.
puis-je créer un lien de base de données comme master_link vous connecter en tant qu'utilisateur de test pour sql plus à l'aide de la commande suivante
CRÉER une BASE de données LIEN master_link se CONNECTER À MAÎTRE IDENTIFIÉ PAR un mot de passe à l'AIDE de (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST =192.168.9.139)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl))))
Par loggin en tant qu'utilisateur de test et l'utilisation de la base de données nom du lien, je peux modifier les tables de l'utilisateur principal. par exemple
update table1@master_link ensemble display_title = 'ÉTANGS ;
Cette requête met à jour la table table1 du maître de l'utilisateur.
Mon exigence est que je veux donner à lire seulement la permission de lien de base de données (master_link), de sorte que l'utilisateur test ne pouvez pas les modifier ou de les insérer dans une table de master utilisateur à l'aide de lien de base de données.
OriginalL'auteur ponds | 2010-10-08
Vous devez vous connecter pour publier un commentaire.
Sur la base de données que le MAÎTRE de schéma de résidence, vous devez créer un nouvel utilisateur (c'est à dire MASTER_READ_ONLY). Subvention de la MASTER_READ_ONLY à l'utilisateur de SÉLECTIONNER un accès à tous à la MAÎTRISE des tables (probablement par l'intermédiaire d'un rôle). Vous pouvez éventuellement créer soit des synonymes ou privé des synonymes dans les MASTER_READ_ONLY schéma de référence les objets en MAÎTRE. Ensuite, lorsque vous créez le lien de base de données, utilisez la MASTER_READ_ONLY compte plutôt que le compte principal.
Quelque chose comme
En tant qu'administrateur de
En tant que MAÎTRE
Comme MASTER_READ_ONLY
Sur la base de données où l'utilisateur de TEST a été créé
Comme Alex points, vous pouvez créer un nouvel utilisateur sur la base de données locale, de créer le lien de base de données comme un lien privé dans ce nouveau schéma, de créer des vues dans les nouveaux locaux du schéma de requête les tables distantes, puis accordez la locale de l'utilisateur test d'accès sélection sur ces points de vue. Ce n'est pas aussi sécurisé que la création d'un utilisateur en lecture seule dans la base de données master, parce que le nouvel utilisateur dans la base de données locale aura un accès complet aux objets dans le maître de schéma.
vrai, mais le test de l'utilisateur n'aura pas accès complet pour le maître qui semble être le point principal. Personne à l'exception de @étangs doit être en mesure de se connecter en tant que l'utilisateur qui possède le lien, et comme ils ont à connaître le maître informations d'identification pour créer le lien qui n'est pas l'ajout de beaucoup plus de risques (tant que l'utilisateur est ensuite utilisé pour d'autres choses, ou par la suite partagé). Je suis d'accord c'est moins satisfaisante, même si *8-)
D'accord. Mais vous êtes juste déplacer le problème de l'utilisateur de TEST sur la base de données locale de pouvoir de modifier une table dans le MAÎTRE de schéma sur la base de données distante pour le nouvel utilisateur sur la base de données locale en étant capable de faire la même chose. Si j'étais dans un quelconque lien avec la sécurité des données dans la base de données MASTER, il n'y a pas moyen que j'avais de permettre à une base de données à distance pour vous connecter en tant que MAÎTRE. Et si je ne participe avec la base de données de TEST, je serais inquiète de ce que de tout temps il y avait des problèmes de données sur le MASTER, j'aurais blâmé parce que le DML aurait pu venir du système de TEST.
Ne peut pas discuter avec tout ça. Être intéressant de savoir pourquoi la connexion est nécessaire; type de espérant MAÎTRE n'est pas de la production et de l'utilisation live réf données à distance. Pose également la question de pourquoi quelqu'un qui travaille sur le test de connaître le MAÎTRE d'informations d'identification dans la première place. (D'ailleurs, pouvait-on empêcher une distance DB lien? Pouvez-vous dire à part un live de l'utilisateur?). Le seul moment où je peux imaginer considérant ce n'est - peut-être - s'il y avait deux instances de test et que vous essayez de garder quelque chose à l'étape ou d'éviter la duplication de set-up, mais je pense que de la meilleure des manières.
OriginalL'auteur Justin Cave
Si vous vous connectez en tant qu'utilisateur
master
toute personne utilisant le lien a que les privilèges de l'utilisateur sur la base de données distante. Pour isoler ce que vous pouvez créer un nouvel utilisateur sur l'instance qui a lamaster
schéma, donner à l'utilisateur de sélectionner privs (sélectionné)master
's tables, et de construire votre lien de base de données à l'aide de l'utilisateur en lecture seule.(Je suis en supposant que vous n'avez pas
update any table
accordée àpublic
sur l'instance maître...)Alternativement, si vous n'êtes pas en mesure de créer un nouvel utilisateur sur le maître d'exemple, vous pouvez créer un nouvel utilisateur sur l'instance de test à la place. Si vous créez la base de données lien dans ce nouvel utilisateur de schéma, vous pouvez créer en lecture seule de vues en utilisant le lien qui votre
test
utilisateur peut accéder sans exposer le lien de base de données elle-même. Cela peut être plus compliqué pour quelqu'un qui vient plus tard à la trace ce qui se passe, mais c'est une option.OriginalL'auteur Alex Poole