oracle的ACL
ACL用於定義哪些使用者擁有哪個遠端主機的什麼許可權,主要使用的是DBMS_NETWORK_ACL_ADMIN這個自帶的包來完成。
==============================================
首先要建立一個ACL。
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl => 'test_ast_server_permissions.xml', --->acl的名字
description => 'Enables network permissions for the quark servers',
principal => 'APP', ----->使用者
is_grant => TRUE,
privilege => 'connect'); ------->許可權為connect
END;
/
==============================================
新使用者新增到已經建立的acl中(必須兩個許可權同時擁有,新建ACL的時候已經給了connect許可權的話,只需要在給一個resolve許可權)
BEGIN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
acl => 'test_acs_server_permissions.xml',
principal => 'APP', ----->使用者
is_grant => true,
privilege => 'resolve'); ------->許可權為resolve
END;
/
BEGIN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
acl => 'test_acs_server_permissions.xml',
principal => 'APP',
is_grant => true,
privilege => 'connect');
END;
/
================================================
為使用者指定網址以及埠
BEGIN
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl => 'test_ast_server_permissions.xml',
host => '192.16.250.219',
upper_port => 80, ---->如果已經知道確切的埠號,可以將upper_port和lower_port寫成確切的埠號。
lower_port => 80);
END;
/
commit; 記得提交事務。
================================================
也可以將已經存在的ACL刪除掉:
begin
DBMS_NETWORK_ACL_ADMIN.DROP_ACL('quark_ast_server_permissions.xml');
commit;
end;
/
================================================
查詢網路訪問控制列表 acl:
select * from DBA_NETWORK_ACLS;
查詢訪問控制許可權列表:
select * from DBA_NETWORK_ACL_PRIVILEGES;
驗證使用者是否已經可以訪問外部地址:
conn app/app
select utl_http.request('http://192.16.250.219:8080/api/db/xdtCompleteCall') From dual;
只要返回的不是error,就可以認為已經配通,可以訪問外部地址了。
注:有時候ACL配好了,訪問外部地址也會報錯,如:
ORA-29273: HTTP 請求失敗
ORA-06512: 在 "SYS.UTL_HTTP", line 1722
ORA-12541: TNS: 無監聽程式
ORA-06512: 在 line 1
這個時候需要檢查的是外部地址在IE端是否能被正確開啟。
==============================================
首先要建立一個ACL。
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl => 'test_ast_server_permissions.xml', --->acl的名字
description => 'Enables network permissions for the quark servers',
principal => 'APP', ----->使用者
is_grant => TRUE,
privilege => 'connect'); ------->許可權為connect
END;
/
==============================================
新使用者新增到已經建立的acl中(必須兩個許可權同時擁有,新建ACL的時候已經給了connect許可權的話,只需要在給一個resolve許可權)
BEGIN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
acl => 'test_acs_server_permissions.xml',
principal => 'APP', ----->使用者
is_grant => true,
privilege => 'resolve'); ------->許可權為resolve
END;
/
BEGIN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
acl => 'test_acs_server_permissions.xml',
principal => 'APP',
is_grant => true,
privilege => 'connect');
END;
/
================================================
為使用者指定網址以及埠
BEGIN
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl => 'test_ast_server_permissions.xml',
host => '192.16.250.219',
upper_port => 80, ---->如果已經知道確切的埠號,可以將upper_port和lower_port寫成確切的埠號。
lower_port => 80);
END;
/
commit; 記得提交事務。
================================================
也可以將已經存在的ACL刪除掉:
begin
DBMS_NETWORK_ACL_ADMIN.DROP_ACL('quark_ast_server_permissions.xml');
commit;
end;
/
================================================
查詢網路訪問控制列表 acl:
select * from DBA_NETWORK_ACLS;
查詢訪問控制許可權列表:
select * from DBA_NETWORK_ACL_PRIVILEGES;
驗證使用者是否已經可以訪問外部地址:
conn app/app
select utl_http.request('http://192.16.250.219:8080/api/db/xdtCompleteCall') From dual;
只要返回的不是error,就可以認為已經配通,可以訪問外部地址了。
注:有時候ACL配好了,訪問外部地址也會報錯,如:
ORA-29273: HTTP 請求失敗
ORA-06512: 在 "SYS.UTL_HTTP", line 1722
ORA-12541: TNS: 無監聽程式
ORA-06512: 在 line 1
這個時候需要檢查的是外部地址在IE端是否能被正確開啟。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28497416/viewspace-2127372/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ACL
- ACL主席:ACL不是AI會議AI
- SD & ACL
- ORACLE DBMS_NETWORK_ACL_ADMIN 包詳解Oracle
- acl 編譯編譯
- 一個動態ACL的案例
- [收藏]Spring Security中的ACLSpring
- 擴充套件ACL套件
- [Oracle] ORA-24247: network access denied by access control list(ACL)Oracle
- 華為S5600的ACL設定
- 許可權模型:ACL模型
- 配置 Linux 的訪問控制列表(ACL)Linux
- IOS - ACL (訪問控制列表)iOS
- 實戰Kafka ACL機制Kafka
- Linux ACL 許可權Linux
- linux系統ACL控制Linux
- 華為交換機配置acl策略
- 使用Java API操作zookeeper的acl許可權JavaAPI
- EMR叢集上capacityscheduler的ACL實現
- DBMS_NETWORK_ACL_ADMIN 包的使用
- Apache Ranger——Hadoop ACL控制工具ApacheRangerHadoop
- Apache RocketMQ ACL 2.0 全新升級ApacheMQ
- 實驗11.ACL實驗
- 演示:動態訪問控制列表(帶鎖的ACL)
- Kafka SASL ACL配置踩坑總結Kafka
- acl-masterforlinux(gcc/g++-c)ASTLinuxGC
- Linux ACL學習筆記(zt)Linux筆記
- Laravel Authorization:支援 ACL、RBAC、ABAC 等模型的授權庫Laravel模型
- Redis 6.0 訪問控制列表ACL說明Redis
- ACL Beginner Contest E.Replace DigitsGit
- Linux Kernel ACL訪問控制漏洞(轉)Linux
- ACL 2022 SWCC 論文拆解
- ACL20 | 讓笨重的BERT問答匹配模型變快!模型
- nodejs的使用者許可權管理——acl.mdNodeJS
- Linux ACL 許可權之進階篇Linux
- Linux 筆記分享九:ACL 許可權Linux筆記
- 【Redis原始碼】Redis 6 ACL原始碼詳解Redis原始碼
- 程式碼批量新增ACL管理員許可權