다른 사용자가 소유한 데이터베이스 링크 생성을 위한 Oracle 구문
db 링크를 만드는 일반적인 구문은 다음과 같습니다.
create database link remote_db_link
connect to remote_user
identified by remote_password
using 'remote_db'
하지만 저는 제 DB 링크가 생성된 후 다른 계정으로 소유하고 싶습니다.이것을 할 방법이 방법이 있습니까?
다음은 작동하지 않습니다.
create database link anotheruser.remote_db_link
connect to remote_user
identified by remote_password
using 'remote_db'
구문에서 다른 스키마에 데이터베이스 링크를 만들 수 없다는 점에서 Sathya가 맞습니다.하지만..
해결 방법
다른 사용자의 스키마에 데이터베이스 링크를 만들 수 있습니다.anotheruser
가지다CREATE DATABASE LINK
권한 및 연결되어 있는 사용자를 has로 지정합니다.CREATE ANY PROCEDURE
특권.
제가 사용하는 해결 방법은 다음과 같습니다.
create procedure 다른 사용자 "tmp_doit_200906121431"가시작한다.즉시 실행.데이터베이스 링크 remote_db_link 생성remote_user에 연결remote_password로 식별됨''remote_db'' 사용;끝;/시작한다.다른 사용자 "tmp_doit_200906121431";끝;/삭제 절차다른 사용자 "tmp_doit_200906121431"/
긴장 풀어요.먼저, 절차를 작성합니다.anotherusers
의 스키마; 이 프로시저는CREATE DATABASE LINK
내가 출마하고 싶다는 진술.
절차가 실행되면 절차의 소유자로서 실행되어 다음과 같이CREATE DATABASE LINK
문장은 다음에 의해 실행됩니다.anotheruser
.
절차 이름은 중요하지 않지만 기존 개체 이름과 충돌하지 않도록 해야 합니다.소문자(큰따옴표로 프로시저 이름을 포함)를 사용하고, "tmp"를 사용하여 이 개체를 "임시"로 표시하며, 현재 yyyymmddhh24miss를 프로시저 이름의 일부로 사용합니다.(저는 보통 DBA의 쿼리를 실행합니다.)일치하는 object_name이(가) 존재하지 않는지 확인하는 OBjects.)
이는 "일회성" 유형의 관리 기능의 경우 실행 가능한 해결책입니다.다른 사용자의 암호 저장, 암호 변경, 사용자로 연결, 저장된 다른 사용자의 암호를 다시 설정하는 방법보다 이 방법을 선호합니다.)
DBLinks에 대한 제한 - 다른 사용자의 스키마에 데이터베이스 링크를 만들 수 없으며, 스키마 이름으로 dblink의 수식을 지정할 수 없습니다.
SYS 사용자는 SYS의 모든 db 링크를 볼 수 있습니다.DBA_DB_LINKs 보기.해당 보기는 link$와 user$ 테이블을 사용합니다.평소와 같이 새로운 dblink를 생성할 수 있으며 link$ 테이블에 표시됩니다.그런 다음 소유자를 변경합니다(user$에서 id 사용). commit.다 했어요.
언급URL : https://stackoverflow.com/questions/988230/oracle-syntax-for-creating-database-link-owned-by-another-user
'programing' 카테고리의 다른 글
여러 테이블을 카운트()하기 위한 SQL 쿼리 (0) | 2023.10.19 |
---|---|
MariaDB 구문 오류 (0) | 2023.10.19 |
Laravel의 데이터베이스 계층을 독립적으로 사용할 수 있습니까? (0) | 2023.10.19 |
lsb_release: 최신 Ubuntu Docker 컨테이너에 명령을 찾을 수 없습니다. (0) | 2023.10.19 |
이미지를 자동으로 잘라내고 가운데로 맞추는 방법 (0) | 2023.10.19 |