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。

上一篇:php 3des key 不足24位

下一篇:oracle 12 c怎么安装


Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器