zoukankan      html  css  js  c++  java
  • oracle 管理操作 (转)

    <STRONG>3个默认的帐户:</STRONG>
            sys          change_on_install      网络管理员       [as sysdba]
            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 tablespace  to 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.ora  password=sys  entries=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]
            CasCade表示删除用户所有对象
             
            示例:
            drop user abc cascade;

  • 相关阅读:
    JAVA类型转换
    ASCII码表
    Java运算符的优先级(从高到低)
    Java内各种进制的表示
    java 标识符命名规则
    Java介绍(重要特点)
    多线程
    Mac&iOS之多线程--转自http://geeklu.com/2012/02/thread/
    00002-20180324-数组-列表
    00001-20180324-从列表中获取单个元素
  • 原文地址:https://www.cnblogs.com/Veakey/p/2704574.html
Copyright © 2011-2022 走看看