zoukankan      html  css  js  c++  java
  • ORACLE用户管理

    ORACLE用户管理包括:       创建用户、修改用户、删除用户

    创建用户的脚本命令是CREATE USER语句,创建用户一般要由DBA或拥有该系统权限的用户来执行。那么我们首先来创建一个名为:kerry的用户(账号)

    CREATE USER kerry
    IDENTIFIED 
    BY K123456
    DEFAULT TABLESPACE USERS
    QUOTA 10M 
    ON USERS

    TEMPORARY TABLESPACE  TEMP 

    创建用户以后,我们可以通过下面的脚本来查看用户信息


     SELECT USERNAME, PASSWORD,ACCOUNT_STATUS, DEFAULT_TABLESPACE,       

            TEMPORARY_TABLESPACE, PROFILE
    FROM DBA_USERS WHERE USERNAME ='KERRY'

     

    IDENTIFIED BY 指定用户密码

    DEFAULT TABLESPACE 指定用户默认表空间,如果不指定表空间,ORACLE会自动在默认表空间为这些对象分配空间。

    QUOTA 为用户指定表空间配额。即用户对象在表空间所占用的最大空间。

    如果你用下面脚本创建用户 


    CREATE USER kerry 

    IDENTIFIED BY K123456

     

    对比你会发现,这和上面脚本创建的用户信息一致。如果不指定默认表空间、临时表空间,系统会默认为你指定相应的表空间。当然你也可以用下面的脚本查看一些相关信息

    SELECT * FROM ALL_USERS WHERE USERNAME ='KERRY';
    SELECT * FROM USER$ WHERE NAME ='KERRY'; 


    那么如何查看用户指定表空间配额信息呢?暂时还不清楚这些信息放在哪个字典视图、表里面。  

    CREATE USER kerry
    IDENTIFIED 
    BY 123456
    DEFAULT TABLESPACE USERS
    QUOTA 10M 
    ON USERS
    TEMPORARY TABLESPACE  TEMP

    --ORA-00988: 口令缺失或无效。

    这是因为PROFILE里面有对用户密码复杂度的一些控制。你可以通过下面脚本查看这个用户使用的是哪个PROFILE文件 

     

     

    在$ORACLE_HOME\RDBMS\ADMIN\utlpwdmg.sql

    我的电脑目录是D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utlpwdmg.sql, 你可以看到一些密码的复杂度设置控制

    里面有这样一条限制

    -- Check if the password contains at least one letter, one digit and one
    -- punctuation mark.

     

    所以刚才创建用户才会报错。

    创建用户成功后,你用你新用户登录,此时会报错,你必须给新用户授予相应权限,如下所示:  

    SQL> connect kerry/K123456
    ERROR:
    ORA
    -01045user KERRY lacks CREATE SESSION privilege; logon denied


    SQL
    > connect SYSTEM/kerry123456
    已连接。
    SQL
    > grant create session, create table to kerry;

    授权成功。

    SQL
    >  create table user1(id number(10), username varchar2(32)) tablespace users;
    表已创建。



    修改用户

    修改用户涉及以下一些方面

    1:修改用户密码

    2:修改表空间配额

    3:锁定用户账户

    4:解锁用户账户

    5:修改默认表空间

    6:修改临时表空间 

    1:修改用户密码

    SQL
    > alter user kerry identified by kerry123456;

    用户已更改。

    kerry账户自己修改自己密码,而DBA账户可以修改任何用户密码

    2:修改表空间


    SQL
    > connect kerry/kerry123456
    已连接。
    SQL
    > alter user kerry quota 100M on users;
    alter user kerry quota 100M on users
    *
    第 
    1 行出现错误:
    ORA
    -01031: 权限不足


    SQL
    > connect system/kerry123456;
    已连接。
    SQL
    > alter user kerry quota 100M on users;

    用户已更改。

    可以看到kerry用户自己修改自己的表空间配额时出现权限不足错误。

    锁定用户账号

    SQL
    > ALTER USER kerry ACCOUNT LOCK;

    User altered

    解锁用户账号
    SQL
    > ALTER USER kerry ACCOUNT UNLOCK;
    User altered
    修改默认表空间

    修改默认表空间时不能指定临时表空间为默认表空间,否则会报错。

    修改临时表空间  

    修改临时表空间时不能指定表空间为临时表空间,否则会报错。


    扫描上面二维码关注我
    如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
  • 相关阅读:
    linux历史及基本知识
    this关键字
    类加载与对象初始化
    学习之vim
    简单的登录界面(包括帐号密码验证)
    Web前端基础
    九大排序算法
    对“面向对象”思想的理解
    交换机
    网络编程协议详解
  • 原文地址:https://www.cnblogs.com/kerrycode/p/2033074.html
Copyright © 2011-2022 走看看