2016-06-22 66 views

回答

0

只能將訪問權限授予用戶和角色,而不是IP地址。

可能通過創建一個具有訪問權的帳戶然後創建一個LOGON trigger來限制訪問來僞造它,儘管我建議不要這樣做。

CREATE OR REPLACE TRIGGER check_user 
    AFTER LOGON ON DATABASE 
    BEGIN 
    if sys_context('userenv', 'ip_address') <> '175.45.177.50' then 
     raise_application_error(-20000, 'This IP cannot access this database.'); 
    end if; 
END; 
/

由於多種原因,這可能是一個壞主意。 IP地址可能是僞造的,並不是認證用戶的好方法。此外,請小心,因爲這些觸發器可以阻止很多用戶。 (警告:我沒有測試上述代碼,因爲我沒有可以立即銷燬的數據庫。)此外,這些觸發器不會阻止具有DBA角色的用戶,因此測試它們可能會非常棘手。

0

我不知道,但你可以看到下面的代碼是否適合您的authenication」

CREATE OR REPLACE procedure pg_sql_broker AUTHID current_user IS begin your code: end

如果您希望Oracle使用用戶的權限當前正在運行的存儲過程,你要使用AUTHID CURRENT_USER。

相關問題