• Oracle用户与模式(创建,修改,删除用户和用户权限管理)


    一.模式

    模式又称方案(Schema),是用户所拥有的所有数据库对象的集合,如表、索引、触发器等逻辑对象都存储在模式对象中。
    模式的名称和用户的名称相同,用户与模式一一对应。默认情况下,用户所创建的数据库对象都保存在自己的同名模式中

    注意事项:

    用户可以直接访问自己模式中的对象,如要访问其他模式中的对象,则必须具有相应的对象权限
    数据库中的对象名在同一个模式中是唯一的,但在不同模式中可以具有相同的对象名。
    当用户访问其他模式中的对象时,必须加模式名来做前缀。即:模式名.对象名

    1.模式的选择与切换

    如果用户以NORMAL身份登录,则进入同名模式。
    如果用户以SYSDBA身份登录,则进入SYS模式。

    CONNCE SYS/ORACLE10  AS SYSDBA

    如果用户以SYSOPER身份登录,则进入PUBLIC模式

    CONN SYS/ORACLE 10  AS  SYSOPER

    2.模式对象与非模式对象

    模式对象
    主要包括表、索引、DML触发器、视图、存储过程、程序包、JAVA类、自定义类型等。
    注意:模式对象名最多为30个字符,且小写字母会被转换为大写字母。如使用的不是标准标识符,则需要将其封装在双引号中。
    非模式对象
    包括表空间、用户、角色、概要文件等。

    二.创建用户

    1 ORACLE 初始用户

    SYS 是数据库中具有最高权限的数据库管理员,可以启动、修改、关闭数据库,拥有数据字典。

    SYSTEM 是一个辅助的数据库管理员,不能启动和关闭数据库,但可以进行其他一些管理工作,如创建用户、删除用户等。

    PUBLIC 是一个用户组,数据库中任何一个用户都属于该组成员。要为数据库中每个用户都授予某个权限,只需要把权限授予PUBLIC 就可以了。

     2 查询用户信息的数据字典

    1)ALL_USERS:包含数据库所有用户的用户名、用户id 和用户创建时间。
    2)DBA_USERS:包含数据库所有用户的详细信息。
    3)USER_USERS:包含当前用户的详细信息。
    4)DBA_TS_QUOTAS:包含所有用户的表空间配额信息。
    5)USER_TS_QUOTAS:包含当前用户的表空间配额信息。

    3、SQL语句创建用户

    CREATE  USER user_name
    IDENTIFIED BY password
    [DEFAULT TABLESPACE  tablespace_name]
    [TEMPORARY TABLESPACE temp_tablespace_name]
    [QUOTA [number[K|M] |UNLIMITED] ON tablespace_name]
    [ACCOUNT LOCK|UNLOCK];

    语法说明:
    IDENTIFIED BY:指定帐户的初始口令
    DEFAULT TABLESPACE :用户的默认表空间
    TEMPORARY TABLESPACE :用户的临时表空间
    QUOTA:用户在表空间中使用的限额
    ACCOUNT :锁定或解锁帐户
    【例】使用SQL语句创建用户orac_test,默认表空间为USERS,临时表空间为TEMP.

    CREATE  USER orac_test
    IDENTIFIED BY oracle
    DEFAULT TABLESPACE USERS
    TEMPORARY TABLESPACE TEMP;

    【例】使用用户orac_test连接数据库
    注意:初始建立的数据库用户是没有任何权限的,不能执行任何数据库操作

    三.权限管理

    1、在 ORACLE中,权限分为两类:

    (1)系统权限
           在数据库级别执行某种操作的权限,或针对某一类对象执行某种操作的权限。如 CREATE SESSION CREATE TABLE。
    (2)对象权限
            对某个特定的数据库对象执行某种操作的权限。如对特定表的插入、删除、修改、查询的权限。

    2 、在ORACLE 中,将权限授予用户有如下两种方法:

    (1)直接授权
       利用 GRANT 命令直接为用户授权。
    (2)间接授权
       先将权限授予角色,然后再将角色授予用户。

    3、在给用户授权时,应该注意以下4个方面

    (1) 只有DBA才应当拥有ALTER DATABASE系统权限。
    (2)应用程序开发者一般需要拥有CREATE TABLE  CREATE VIEW和CREATE INDEX等系统权限。
    (3)普通用户一般只具有CREATE SESSION 系统权 限。
    (4)只有授权时带有WITH ADMIN OPTION子句时,用户可以将获得权限授予其他用户。

     4 、给用户赋予权限

    语法格式:
      GRANT 权限或角色 TO 用户;
    【例】使用SQL语句给用户orac_test授予与删除CREATE SESSION系统权限

       GRANT CREATE SESSION TO orac_test;
    REVOKE CREATE SESSION from orac_test;

    5、使用数据字典user_users查看当前用户的详细信息

    SQL>SELECT username FROM  user_users;

    6、在当前用户下创建数据表,观察提示。

    7、以 SYS登录,授权ORAC_TEST用户CREATE TABLE等权限

    8、重新以ORAC_TEST登录,创建表,观察提示。     

    如果成功创建表之后,在表中录入数据:
    我们可以 重新以SYS登录,修改ORAC_TEST的默认表空间使用配额

    alter user orac_test quoto 1m on users

    然后再以ORAC_TEST用户登录,向表中录入数据,观察提示
     补充:角色管理
    角色:一系列相关权限的集合。
    ORACLE中有三个常用的预定义角色:
    CONNECT  
    RESOURCE
    DBA

    四.修改用户

    ALTER  USER  user_name
    IDENTIFIED BY password
    [DEFAULT TABLESPACE  tablespace_name]
    [TEMPORARY TABLESPACE temp_tablespace_name]
    [QUOTA [number[K|M] |UNLIMITED] ON tablespace_name]
    [PASSWORD EXPIRE]password expire://用来设置用户口令过期,失效,强制用户登录数据库时候必须修改口令.
    [ACCOUNT LOCK|UNLOCK];

    【例】使用SQL语句更改用户orac_test的密码;

     ALTER USER orac_test
         IDENTIFIED BY zhl123

    【例】使用SQL语句锁定用户orac_test;

     ALTER USER orac_test
         ACCOUNT lock;

    【例】使用SQL语句解锁用户orac_test;

       ALTER USER orac_test
         ACCOUNT unlock;

    五.删除用户

    语法格式:

    DROP  USER  user_name
    [CASCADE]
    说明:

    如果用户已创建了模式对象,在删除用户时必须增加CASCADE选项,表示删除用户时连同该用户创建的对象也删除,否则系统将提示错误信息
    例:使用SQL语句删除用户orac_test;

         DROP USER orac_test  CASCADE
  • 相关阅读:
    1175_UPDATE报错[转]
    python&sql
    MySQL安装
    python[1]
    一道题理解层次分析法【转】
    神经网络编程入门
    监督学习和无监督学习
    ML-3Normal equation
    ML_note1
    CTF之隐写总结
  • 原文地址:https://www.cnblogs.com/CX66/p/13974639.html
Copyright © 2020-2023  润新知