前言:下载Oracle一天了,表空间、表都创建了,用户反倒迷惑了。。。。
oracle 安装后都默认创建了一些用户,一般解锁3个 sys system scott 这三个。
SYS 是超级用户,老大。具有sysdba和sysoper的角色,所有视图都存放在sys用户中。
SYSTEM是管理员用户,权限也非常高,但是不具备以下权限(其他均可):
1 ALTER DATABASE LINK
2 ALTER PUBLIC DATABASE LINK
3 EXEMPT ACCESS POLICY
4 EXEMPT IDENTITY POLICY
SYSDBA和SYSOPER能启动关闭数据库实例。SYSTEM不能启动关闭数据库实例。
SCOTT是普通用户(示例账户),可以 用来学习。。。。
Oracle默认账户除了SYS、SYSTEM、SCOTT,还包括很多其他账户,比如:
ANONYMOUS、APEX_030200、APEX_PUBLIC_USER、APPQOSSYS、CTXSYS、DBSNMP、DIP、EXFSYS、FLOWS_FILES、MDDATA、MDSYS、MGMT_VIEW、OLAPSYS、ORACLE_OCM、ORDDATA、ORDPLUGINS、ORDSYS、OUTLN、OWBSYS、OWBSYS_AUDIT、SCOTT、SI_INFORMTN_SCHEMA、SPATIAL_CSW_ADMIN_USR、SPATIAL_WFS_ADMIN_USR、SYSMAN、WMSYS、XDB、XS$NULL。。。。
以上这些账户有的为了管理目的、有些为了数据库额外的功能、有些为了示例而存在。如果你启用了一些比较偏的功能还会自动新增一些用户,比如标签安全性、数据库保险箱啊等等。
这些账户每个你Google一番都能讲一个故事。。。
账户和访问表没有直接的关系,权限才是,拿SELECT ANY TABLE(查看任何表)为例,看看谁能查看任何表:
SQL> select grantee from dba_sys_privs where privilege='SELECT ANY TABLE';
GRANTEE
--------------------------------------------------------------------------------
SYS
SYSTEM
DATAPUMP_IMP_FULL_DATABASE
GGSYS
EXP_FULL_DATABASE
OLAP_DBA
DBA
IMP_FULL_DATABASE
GSMADMIN_INTERNAL
DV_REALM_OWNER
WMSYS
已选择 11 行。
SQL>
可查看任何表的账户:SYS,SYSTEM,OLAP_DBA、DBA、IMP_FULL_DATABASE。。。
获得了视图DBA_ROLE_PRIVS的角色:IMP_FULL_DATABASE,EXP_FULL_DATABASE,DATAPUMP_IMP_FULL_DATABASE,OLAP_DBA。。。。。
解锁的命令是ALTER USER 用户名 ACCOUNT UNLOCK;
如:alter user TEST account unlock;
还能顺便重设密码:ALTER USER 用户名 IDENTIFIED BY 新密码 ACCOUNT UNLOCK;
如:alter user TEST identified by 123456 account unlock;
数据库有密码保护策略,密码输错一定次数后即使密码再输对也不让登录,即锁定。
不过,为了保护你的数据库,大多数数据库默认具备的账户默认锁定,除了SYS,SYSTEM(如果你配置了Database Control还有DBSNMP和SYSMAN)。
这里,我也明白连接Oracle后,打开数据库显示的都是默认账户和自己创建的新用户,刚开始看一大堆,还以为是啥呢。。。。。当然,下载简洁版 EX ,打开后就没有这么多默认用户
人无完人,接受指点与反驳,森!!仔