• oracle使用总结


    3个默认的帐户:
            对于oracle 9来说:
    sys change_on_install 网络管理员
    [as sysdba]
    system manage 本地管理员
    scott tiger 普通用户 默认锁定,需解锁才能用
         对于oracle 10来说:
         sys和system是没有密码的,scott也没有密码,都要自己设定,scott使用需解锁。

    常用操作:
         sqlplus lisi/lisi 用户登录
    disconn;  断开连接(用户已经登录成功的情况下才能使用)
    conn lisi
    /lisi; 打开连接(用户已经登录成功的情况下才能使用)
    commit; 提交数据,每次进行增、删、改之后就要执行这个命令,以保存到硬盘上,
                    其他用户操作时,才会数据一致。
         

    创建用户:
         一般用sys进行操作:
    create user lisi identified by lisi;


    系统权限:(进行DDL操作的权限)
         授权:
    grant create session to lisi;      会话权限,每个用户都要有这个权限后才能登陆
    grant create table to lisi;       建表权限,建表之前先要有表空间
    grant unlimited tablespace to lisi;  不受限表空间权限,可以对数据库中所有表空间进行操作
         有了这三个授权之后才能对表进行CRUD操作

         撤消权限:
    revoke create session from lisi;
    revoke create table from lisi;
    revoke unlimited tablespace from lisi;

            将某个权限公开(比如sys帐户的以下两个权限):
    grant create session to public;
    grant create any talbe to public;

    查看权限表:
    set linesize 400 设置行宽度
    select * from user_sys_privs


    对象权限(进行DML操作的权限):
    grant select on mytab to lisi;    把对表的查询权限授予lisi
    grant all on mytab to lisi; 把对表的增、删、改、查、索引、外键等权限授予lisi

    revoke select on mytab from list; 对lisi撤消对表的查询权限
    revoke all on mytab from lisi;    对lisi撤消对表的所有权限

    select * from user_tab_privs;    查看用户对表的操作权限范围

    对象权限可以控制到列(仅限于增、改):
    grant update(name) on mytab to lisi;   把对表中name字段的更新权限授予lisi
    grant insert(id) on mytab to lisi; 把对表中id字段的插入权限授予lisi

    select * from user_col_privs;     查看用户对表中列的操作权限范围

    注意:查询和删除不能控制到列。

    ddl
    ----数据定义语言
    dml----数据操纵语言
    dcl----数据控制语言
    dml中的增删改需要 commit , 其他不用;
         如果忘记了commit,可能用不同的用户对同一表进行操作时,会发生资源冲突(不能进行DML操作),
         同一个用户操作时;会看不到最新的数据结果。commit是把数据写到硬盘上。


    权限的传递:
    grant alter any table to lisi with admin option; 
         注:在oracle 10中,假设sys用户授予alter any table给lisilisi又把这个权限授予给wang,
           当sys撤消lisi的alter any table权限时,wang的alter any table权限还会存在。

    grant select On A to lisi with grant option;
         注:在oracle 10中,假设sys用户授予select On A 给lisi,lisi又把这个权限授予给wang,
           当sys撤消lisi的select On A权限时,wang的这个权限也会被撤消。 


    角色
    create role myrole;
    grant create session to myrole;
         grant create table to myrole;
    drop role myrole;
            不能把unlimited tablespace权限授予自定义的角色,因为这个权限比较大,是一个比较特殊的权限。

    注意:
    create table 可以给自己创建表 create any table 创建任意一个用户的表
    [alter table] 没有这个权限 alter any table  修改任意一个用户的表
    [drop table] 没有这个权限 drop any table 删除任意一个用户的表
    当一个用户有了create
    any table权限时,也就有了另外两个权限。
         由于
    create any table权限较大,所以不建议把它授予给角色。

    表是属于某一个用户的。
    而角色不属于某个用户,是一个用户集合。

    数据库的三种验证机制:
    操作系统验证   / (当前window用户,系统管理员权限)
    密码文件验证 sys
    数据库验证 scott


    linux下的oracle的启动过程
    lsnrctl start
    sqlplus sys
    /oracle as sysdba
    startup


    window下的oracle的启动过程
    lsnrctl start         启动监听器
    oradim
    -startup -sid orcl 启动数据库实例

    管理员密码丢了怎么办?
         ★假设用户是scott,密码丢了,要对它进行修改。
         1.用sys登陆 sqlplus / as sysdba;注,这是操作系统验证,
          或者使用sqlplus sys/sys as sysdba;进行登录
         2.执行sql语句 alter user scott identified by tiger; 
         经本人试验,通过。
            如果用户是sys,由于它属于SYSDBA,采用操作系统验证和密码文件验证(SYSOPER也是采用这两种验证),
         当我们使用sqlplus / as sysdba进行登录时,就是使用操作系统验证,由于你在window下是管理员,
         默认安装时会把当前用户添加到ora_dba用户组中,所以有权限登录。
         这样比较危险,打开计算机管理->本地用户和组->组->ora_dba,把当前window用户从表中删除,
                 这样用sqlplus / as sysdba就不能登录了。
          ★假设上面的操作都做了,这时就要使用sqlplus sys/sys as sysdba进行登录了,而在这种情况下只有一种验证,
         那就是密码文件验证,所以如果忘了sys的密码,这时就要执行以下操作:
         1.找到PWDorcl.ora
          一般位于C:\oracle\product\10.2.0\db_1\database\下,找到后将PWDorcl.ora删除。
         2.使用命令重新生成PWDorcl.ora
         在命令行中,输入
         orapwd file=C:\oracle\product\10.2.0\db_1\database\PWDorcl.ora password=sys entries=10
         执行完成后,sys的密码就改成了sys了。
         经本人试验,通过。file指PWDorcl.ora文件的路径,password就是sys的密码,entries是用户数量
    
    
    帐户管理细节
             
    创建用户的完整格式:
            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;
    
    一个完整的示例:
    sqlplus sys/sys as sysdba;
    SQL> create user zhang identified by zhang default tablespace users 
    temporary tablespace temp quota 100M on users;
    SQL> create role myrole;
    SQL> grant create session to myrole;
    SQL> grant create table to myrole;
    SQL> grant myrole to zhang;
    
    
    sqlplus zhang/zhang
    SQL> create table teacher(id int,name varchar(10));
    SQL> show user;

      

    编辑器加载中...

  • 相关阅读:
    Vue中v-for不绑定key会怎样
    关于Vuex可直接修改state问题
    不要完全相信Chrome控制台打印的信息
    Vue挂载元素的替换
    (转)openURL的使用方法
    iOS:将NSDate转换为当前时区时间
    OC中使用 static 、 extern、 const使用
    iOS: 正则表达式
    iOS:原生二维码扫描
    iOS:ABPeoplePickerNavigationController系统通讯录使用
  • 原文地址:https://www.cnblogs.com/zfc2201/p/2143440.html
Copyright © 2020-2023  润新知