我有一個關於如何在Oracle PL/SQL中使用數據庫鏈接的問題。假設我有一個數據庫鏈接(Database2)在我當前的數據庫中創建,並且正在使用它來訪問第二個數據庫。例如:Oracle數據庫鏈接授予/撤銷角色
select *from [email protected];
Update [email protected]
set Comment = 'Hello world!'
where CustomerID = 123;
這些都成功工作。
但是讓我們說我想授予角色或從數據庫2中的用戶撤銷角色。可以通過我的數據庫鏈接完成嗎?如果是這樣,語法是什麼?
如果我打開一的Database2 PL/SQL會話,語法是:
REVOKE some_role FROM bsmith;
GRANT some_other_role TO rjones;
有什麼辦法用我的數據庫鏈接從我的原始數據庫做到這一點?
爲什麼要對數據庫做鏈接DDL?這通常是不允許的,通常是一個壞主意。您可以在Database2上創建一個存儲過程,它執行所需的任何DDL,然後授予數據庫鏈接用戶對該過程的執行訪問權限。或者你可能會變得非常棘手,並安排一份工作來運行數據庫2,這實際上可以完成這項撥款,但這是一個相當複雜的架構。 –
我在寫一個存儲過程,它將從我的生產數據庫中取出一些特定的記錄和權限,並將它們複製到我的開發或測試數據庫中。我可以複製記錄沒有問題,但授予權限變得更加棘手。 – MrMike