Oracle管理中常用的SQL语句——用户信息

Oracle管理中常用的SQL语句。
01.用户信息
02.确认用户角色
03.确认用户的系统权限
04.确认用户的对象权限


用户信息

DBA_USERS表中的主要列如下。
列名 说明
USERNAME 用户名
USER_ID 用户的唯一id
PASSWORD 加密后的密码
ACCOUNT_STATUS 用户状态(正常、锁定、密码过期等)
DEFAULT_TABLESPACE 默认表空间
TEMPORARY_TABLESPACE 排序时使用的临时表空间
CREATED 该用户的创建时间

 

使用下面的SQL语句可以确认用户信息。

SELECT username,
       user_id,
       password,
       account_status,
       default_tablespace,
       temporary_tablespace,
       created
  FROM dba_users
 
推荐格式如下:
col username form a20
col default_tablespace form a20
col temporary_tablespace form a20
col password form a20
col account_status form a30

 

用以下的SQL语句可以查找系统中默认密码的用户,以检查安全隐患。

SELECT username "User(s) with Default Password!"
  FROM dba_users
 WHERE password IN
          ('E066D214D5421CCC', -- dbsnmp
           '24ABAB8B06281B4C', -- ctxsys
           '72979A94BAD2AF80', -- mdsys
           'C252E8FA117AF049', -- odm
           'A7A32CD03D3CE8D5', -- odm_mtr
           '88A2B2C183431F00', -- ordplugins
           '7EFA02EC7EA6B86F', -- ordsys
           '4A3BA55E08595C81', -- outln
           'F894844C34402B67', -- scott
           '3F9FBD883D787341', -- wk_proxy
           '79DF7A1BD138CF11', -- wk_sys
           '7C9BA362F8314299', -- wmsys
           '88D8364765FCE6AF', -- xdb
           'F9DA8977092B7B81', -- tracesvr
           '9300C0977D7DC75E', -- oas_public
           'A97282CE3D94E29E', -- websys
           'AC9700FD3F1410EB', -- lbacsys
           'E7B5D92911C831E1', -- rman
           'AC98877DE1297365', -- perfstat
           '66F4EF5650C20355', -- exfsys
           '84B8CBCA4D477FA3', -- si_informtn_schema
           'D4C5016086B2DC6A', -- sys
           'D4DF7931AB130E37' -- system
                             )


确认用户角色

DBA_ROLE_PRIVS表中的主要列如下。
列名 说明
GRANTEE 接受该角色的用户名或角色名
GRANTED_ROLE 赋予用户或角色的角色名
ADMIN_OPTION 赋予时是否带有ADMIN OPTION(YES/NO)
DEFAULT_ROLE 是否为默认角色

 

用下面的SQL语句可以确认赋予用户SCOTT的角色。

SELECT granted_role, admin_option, default_role
  FROM dba_role_privs
 WHERE grantee = 'SCOTT'


确认用户的系统权限

DBA_SYS_PRIVS表中的主要列如下。
列名 说明
GRANTEE 接受权限的用户名或角色名
PRIVILEGE 系统权限名
ADMIN_OPTION 赋予时是否带有ADMIN OPTION(YES/NO)

 

使用下面的SQL语句显示某个用户的系统权限。
SELECT privilege, admin_option
  FROM dba_sys_privs
 WHERE grantee = 'SCOTT'

 

但是,仅通过DBA_SYS_PRIVS表无法看到SYSDBA和SYSOPER权限的赋予情况。可以使用下面的SQL语句。下面的SQL语句确认SYS用户的权限。
SELECT privilege, admin_option
  FROM dba_sys_privs
 WHERE grantee = 'SYS'
UNION
SELECT DECODE(sysdba, 'TRUE', 'SYSDBA', NULL), 'YES'
  FROM v$pwfile_users
 WHERE username = 'SYS' AND sysdba = 'TRUE'
UNION
SELECT DECODE(sysoper, 'TRUE', 'SYSOPER', NULL), 'YES'
  FROM v$pwfile_users
 WHERE username = 'SYS' AND sysoper = 'TRUE'


确认用户的对象权限

DBA_TAB_PRIVS表的主要列如下。
列名 说明
GRANTEE 接受该权限的用户名
OWNER 对象的拥有者
TABLE_NAME 对象名
GRANTOR 赋予权限的用户
PRIVILEGE 权限名
GRANTABLE 赋予该权限时是否带有GRANT OPTION
HIERARCHY 赋予该权限时是否带有HIERARCHY OPTION

 

使用下面的SQL语句可以查看用户的对象权限。
SELECT privilege priv,
       owner || '.' || table_name table_name,
       grantee,
       grantable
  FROM dba_tab_privs
 WHERE owner = 'SCOTT'


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值