Oracle的安全性

WBOY
WBOY원래의
2016-06-07 16:47:051420검색

PUBLIC角色隐式授予每位用户。只要为PUBLIC授予任何权限,相应的权限实际上就会授予可以连接到数据库的每个人,创建的每个账户都

数据库安全和最小权限原则

一、PUBLIC权限

PUBLIC角色隐式授予每位用户。只要为PUBLIC授予任何权限,,相应的权限实际上就会授予可以连接到数据库的每个人,创建的每个账户都有权访问这些权限。默认方式下,PUBLIC用户拥有大量权限。

gyj@OCM> select count(*) from dba_tab_privs where grantee='PUBLIC';

COUNT(*)
----------
    28164


gyj@OCM> select table_name from dba_tab_privs where grantee='PUBLIC' and privilege='EXECUTE' and table_name like 'UTL%';


TABLE_NAME
------------------------------
UTL_RAW
UTL_IDENT
UTL_TCP
UTL_HTTP
UTL_FILE
UTL_INADDR
UTL_SMTP
UTL_URL
UTL_ENCODE
UTL_GDK
UTL_COMPRESS
UTL_I18N
UTL_LMS
UTL_NLA_ARRAY_DBL
UTL_NLA_ARRAY_FLT
UTL_NLA_ARRAY_INT
UTL_NLA
UTL_REF
UTL_COLL
UTL_MATCH
UTL_BINARYINPUTSTREAM
UTL_BINARYOUTPUTSTREAM
UTL_CHARACTERINPUTSTREAM
UTL_CHARACTEROUTPUTSTREAM

24 rows selected.

虽然应用软件可以为PUBLIC用户授予执行UTL包的权限,但是我们应当取消PUBLIC用户的这个权限。执行如下操作就可以取消该权限:

gyj@OCM> conn / as sysdba

Connected.

sys@OCM> revoke execute on utl_file from public;

Revoke succeeded.

UTL_FILE:这个包允许用户读写操作系统,Oracle所有者都可以访问的任何文件和目录,这些文件与目录包括所有的数据库文件以及ORACLE_HOME目录。

linux

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.