权限管理
Oracle 9i
3个默认用户
sys(超级管理员) 默认密码:change_on_install
system(普通管理员) 默认密码:manager
scott(普通用户) 默认密码:tiger
Oracle 10g
sys(密码在安装时设置)
system(密码在安装时设置)
scott(默认锁定,想用得解锁)
启动Windows系统服务:
命令行:
lsnrctl start(启动监听)
oradim -startup -sid orcl(启动数据库实例)
以超级管理员身份登录
sqlplus / as sysdba
show user;(应返回“SYS”)
create user lisi identified by lisi;(创建用户lisi,by后边是密码)
授权
grant create session to lisi;(授予登录的权限)
grant create table to lisi;(授予创建表的权限)
grant unlimited tablespace;(授予不受上限的表空间的权限)
用户登录并做增删改查操作
sqlplus lisi/lisi(登录)
create table mytable (id int);
insert into mytable values(1);
drop table mytable;
把创建权限授予所有用户
grant create session to public;
撤销权限
revoke create table from lisi;
revoke unlimited tablespace from lisi;
查询当前用户拥有的权限
select * from user_sys_privs;
Oracle有上百个权限
对象权限
grant select on mytab to lisi;
grant all on mytab to lisi;
revoke select on mytab from lisi;
revoke all on mytab from lisi;
select * from user_tab_privs;
对象权限可以控制到列
grant update(name) on mytab to lisi;
grant insert(id) on mytab to lisi;
select * from user_col_privs;
注意:查询和删除不能控制到列。
//ddl dml dcl
权限的传递
grant alter any table to lisi with admin option;
grant select on A to lisi with grant option;
角色
create role myrole;
grant create session to myrole;
drop role myrole;
注意:有些系统权限无法直接赋予角色
create table create any table
[alter table] alter any table
[drop table] drop any table
表是属于某一个用户的。
角色不属于某个
数据库的三种验证机制
操作系统验证
密码文件验证
数据库验证
Linux下Oracle的启动过程
lsnrctl start
//sqlplus sys/oracle as sysdba
sqlplus /nolog
conn sys/oracle as sysdba
startup
Windows下Oracle的启动过程
lsnrctl start
oradim -startup -sid orcl
恢复系统管理员(SYS)密码
更改口令文件
把原有口令文件删除
E:/oracle/ora92/database/pwdora9i.ora;
orapwd file=E:/oracle/ora92/database/pwdora9i.ora password=sys entries=10;
select * from v$pwfile_users;
知识来源:传智播客