流水~ 发表于 2012-10-24 23:20:36

oracle 管理操作 (转)

<STRONG>3个默认的帐户:</STRONG>
      sys          change_on_install      网络管理员      
      system       manage            本地管理员
      scott          tiger               超级用户
<STRONG>创建用户、授权和撤消权限</STRONG>

登录oracle:
      sqlplus / as sysdba
         
启动监听:
      lsnrctl start
         
启动数据库的实例:
      oradim -startup -sid orcl
         
SQL> show user;          //显示当前用户

SQL> create user lisi identified by lisi;      //创建一个用户

SQL> grant create session to lisi;         //给用户授予会话权限

SQL> sqlplus lisi/lisi                   //用创建的用户进行登录

SQL> grant unlimited tablespaceto lisi         //给用户授予表空间权限

SQL> grant create table to lisi;             //给用户创建表的权限

SQL> create table mytable (id int);      //创建表

SQL> insert into mytable values (1);   //插入数据

SQL> select * from mytable;          //查询数据

SQL> drop table mytable            //删除表


SQL> revoke create table from lisi;      //撤消对表操作的权限

SQL> select * from user_sys_privs;   //查询当前用户拥有哪些权限

SQL>revoke unlimited tablespace from lisi;       //撤消对表空间操作的权限

<STRONG>丢失管理员密码怎么办?</STRONG>
用sys用户进行修改

sqlplus / as sysdba

alter user scott Identified by tiger;

oracle 9
更改口令文件
把原有口令文件删掉
E:\oracle\ora92\database\pwdora9i.ora;
orapwd file=E:\oracle\ora92\database\pwdora9i.ora password=sys entries=10;

select * from v$pwfile_users;

oracle 10+
更改口令文件
把原有口令文件删掉
E:\oracle\ora92\database\PWDorcl.ora;
orapwd file=E:\oracle\ora92\database\PWDorcl.orapassword=sysentries=10;

select * from v$pwfile_users;

<STRONG>角色管理</STRONG>
角色就是一个权限的集合。

show user;      显示当前用户

create role myrole;         创建一个角色

grant create session to myrloe;         给角色授予session权限

grant create table to myrole;               给角色授予表操作权限

create user zhangsan identified by zhangesan;       创建一个用户

grant myrole to zhangsan;       把角色授予给用户

sqlplus zhangsan/zhangsan       用户登录

drop role myrole;         删除角色

grant unlimited tablespace to myrole;       这个权限比较大,不能通过角色授权,只能授权给用户

<STRONG>权限的传递</STRONG>
?<STRONG></STRONG>
show user:      查看当前用户

select * from user_sys_privs   查看当前用户的系统权限

grant alter any table to lisi;      sys可以授权给李四

grant alter any table to wangwu;      但是李四不能授权给王五

grant alter any table to lisi with admin option;      //现在李四可以授权给王五了

grant alter any table to wangwu with admin option;      //让王五也可以传递权限

create table A(id int);         //在sys中创建一个表A

grant select On A to lisi;      //把表操作权限传递给李四,但李四不能传递权限

grant select On A to lisi with grant option;            //现在李四可以传递权限了

grant select on sys.A to wangwu with grant option;;         //让王五也可以传递权限。

<STRONG>系统权限与对象权限</STRONG>

SQL> create user wanwu identified by wangwu

SQL> grant create session to wangwu;

SQL> sqlplus wangwu/wangwu

SQL> grant create table,unlimited tablespace to wangwu;

SQL> create table mytab(id int);

SQL> insert into mytab values(2);

用lisi访问wangwu 的表,不能访问
SQL> select * from wangwu.mytab;

用sys用户访问wangwu 的表,可以,要执行两次
SQL> select * from wangwu.mytab;
SQL> select * from wangwu.mytab;

让lisi可以访问wangwu的表
SQL> grant select on mytab to lisi;      //把查询权限授予李四

SQL> grant insert on mytab to lisi;      //把插入权限授予李四

SQL> commit;   //提交后才显示数据

SQL> grant all on mytab ot lisi;   // 把操作表的最大权限授予李四

SQL> revoke all on mytab from lisi;    // 撤消李四对表操作的权限



SQL> disconn

SQL> conn wangwu/wangwu

SQL> commit:    //每次对表操作后要提交

SQL> alter table mytab add name varchar(50);

SQL> insert into mytab values(1,'zhang');

SQL> insert into mytab values(2,'li');

SQL> insert into mytab values(3,'wang');

SQL> commit;

SQL> grant update(name) on mytab to lisi;      //让李四只有更新name列的权限

SQL> grant insert(id) on mytab to lisi;          //让李四只有插入id列的权限

SQL> update wangwu.mytab set name='lihuoming' where id=1;


<STRONG>帐户管理细节</STRONG>

1.三个常用的系统用户:
      scott(一个数据库的普通用户)
      conn scott/tiger
         
      manager(数据库管理员)
      conn system/manager
         
      sys(数据库对象的拥有者权限最高)
      conn sys/change_on _install as sysdba
         
创建用户的完整格式:
      create user 用户名 identified by 密码
      default tableSpace 表空间
      Temporary TableSpace 表空间
      Quota 整数[ K | M | Limited | unlimited ] on 表空间
         
      例子:
      create user abc
      identified by 123
      default tablespace Users
      Temporary tablespace Temp
      Quota 50M on Users
         
         
限制用户:
      用户加锁    --alter user 用户名 account lock
      用户解锁--    alter user 用户名 account unlock
      用户口令即刻失效 --alter user 用户名 password expire
         
删除用户:
      drop user 用户名
      CasCade表示删除用户所有对象
         
      示例:
      drop user abc cascade;
页: [1]
查看完整版本: oracle 管理操作 (转)