Oracle 12 c acl
在Oracle数据库中,一个ACL(访问控制列表)就是一个命名的对象,它由一个或多个访问控制条目组成,允许或拒绝一个或多个主体对数据库对象进行特定的操作。在Oracle 12c中,ACL已被广泛应用于网络服务的授权,如SQL*Net,HTTP和SMTP。
以SQL*Net为例,假设你的Oracle数据库中的公司地图和库存数据经常被外部用户访问,你可以创建一个名为my_acl的ACL,将受保护的对象映射到该ACL上,并授予用户组或IP子网访问该ACL。
下面我们来详细了解一下Oracle 12c的ACL:
1. 创建ACL
使用SYS DBMS_NETWORK_ACL_ADMIN包来创建网络ACL。要创建网络ACL,请提供一个名称和一个ACL授权规则列表。示例代码如下:
BEGINDBMS_NETWORK_ACL_ADMIN.create_acl (acl => 'my_acl.xml',description => 'Allow access to my ACL',principal => 'OWNER',is_grant => TRUE,privilege => 'connect',start_date => SYSTIMESTAMP,end_date => NULL);COMMIT;END;/
其中,acl为ACL的名称,is_grant为授予权限,privilege为该权限类型,start_date和end_date确定访问时间,description为ACL的描述。
2. 增加ACL授权访问规则
使用SYS DBMS_NETWORK_ACL_ADMIN包来增加ACL授权访问规则。为ACL建立一个或多个授权规则,以授予访问权限给一个或多个主体。示例代码如下:
BEGINDBMS_NETWORK_ACL_ADMIN.add_privilege(acl => 'my_acl.xml',principal => 'SCOTT',is_grant => TRUE,privilege => 'connect');COMMIT;END;/
主体可以是用户或以逗号分隔的用户列表。is_grant确定是否授予权限,privilege确定授权规则。
3. 为ACL分配对象
使用SYS DBMS_NETWORK_ACL_ADMIN包来分配对象到ACL上。示例代码如下:
BEGINDBMS_NETWORK_ACL_ADMIN.assign_acl(acl => 'my_acl.xml',host => 'localhost',lower_port => 1521,upper_port => 1521);COMMIT;END;/
上面的代码将ACL应用到localhost:1521的端口上。
总结
使用ACL授权访问使数据库更加安全和可管理。在Oracle 12c中,可以使用DBMS_NETWORK_ACL_ADMIN包来创建ACL,增加ACL授权规则和分配对象。希望这篇文章能够帮助你更好地了解Oracle 12c的ACL。
下一篇:oracle 12 c怎么安装
winlogins.exe是什么文件?winlogins.exe是不是病毒
winsock2.6.exe是什么文件?winsock2.6.exe是不是病毒
WinDefendor.dll是什么文件?WinDefendor.dll是不是病毒
系统目录是什么文件?系统目录是不是病毒
wholove.exe是什么文件?wholove.exe是不是病毒
winn.ini是什么文件?winn.ini是不是病毒
w6oou.dll是什么文件?w6oou.dll是不是病毒
winduxzawb.exe是什么文件?winduxzawb.exe是不是病毒
wuammgr32.exe是什么文件?wuammgr32.exe是不是病毒
windiws.exe是什么文件?windiws.exe是不是病毒