zoukankan      html  css  js  c++  java
  • Oracle创建用户、角色、授权、建表空间

    oracle数据库的权限系统分为系统权限与对象权限。系统权限( database system privilege )可以让用户执行特定的命令集。例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。对象权限( database object privilege )可以让用户能够对各个对象进行某些操作。例如delete权限允许用户删除表或视图的行,select权限允许用户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。

    每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。


    一、创建用户

    oracle内部有两个建好的用户:system和sys。用户可直接登录到system用户以创建其他用户,因为system具有创建别 的用户的 权限。 在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。

    语法[创建用户]: create user 用户名 identified by 口令[即密码];

    例子: create user test identified by test;

    语法[更改用户]: alter user 用户名 identified by 口令[改变的口令];

    例子: alter user test identified by 123456;


    二、删除用户

    语法:drop user 用户名;

    例子:drop user test;

    若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。

    语法: drop user 用户名 cascade;

    例子: drop user test cascade;

    三、授权角色

    oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba.

    (1)讲解三种标准角色:

    1》. connect role(连接角色)

    --临时用户,特指不需要建表的用户,通常只赋予他们connect role. 

    --connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。

    --拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他  数据的链(link)

    2》. resource role(资源角色)

    --更可靠和正式的数据库用户可以授予resource role。

    --resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。

    3》. dba role(数据库管理员角色)

    --dba role拥有所有的系统权限

    --包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有

    (2)授权命令

    语法: grant connect, resource to 用户名;

     例子: grant connect, resource to test;

       (3)撤销权限

          语法: revoke connect, resource from 用户名;

          列子: revoke connect, resource from test;

    四、创建/授权/删除角色

    除了前面讲到的三种系统角色----connect、resource和dba,用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,用户必须具有create role系统权限。

    1》创建角色

    语法: create role 角色名;

    例子: create role testRole;

    2》授权角色

    语法: grant select on class to 角色名;

    列子: grant select on class to testRole;

    注:现在,拥有testRole角色的所有用户都具有对class表的select查询权限

    3》删除角色

    语法: drop role 角色名;

    例子: drop role testRole;

    注:与testRole角色相关的权限将从数据库全部删除

    权限:

      create session

      create table

      unlimited tablespace

      connect

      resource

      dba

      例:

      #sqlplus /nolog

      SQL> conn / as sysdba;

      SQL>create user username identified by password

      SQL> grant dba to username;

      SQL> conn username/password

      SQL> select * from user_sys_privs;

      我们将从创建Oracle用户权限表开始谈起,然后讲解登陆等一般性动作,使大家对Oracle用户权限表有个深入的了解。

      一、创建

      sys;//系统管理员,拥有最高权限

      system;//本地管理员,次高权限

      scott;//普通用户,密码默认为tiger,默认未解锁

      二、登陆

      sqlplus / as sysdba;//登陆sys帐户

      sqlplus sys as sysdba;//同上

      sqlplus scott/tiger;//登陆普通用户scott

      三、管理用户

      create user zhangsan;//在管理员帐户下,创建用户zhangsan

      alert user scott identified by tiger;//修改密码

      四,授予权限

      1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限

      

      grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限

      grant unlimited tablespace to zhangsan;//授予zhangsan用户使用表空间的权限

      grant create table to zhangsan;//授予创建表的权限

      grante drop table to zhangsan;//授予删除表的权限

      grant insert table to zhangsan;//插入表的权限

      grant update table to zhangsan;//修改表的权限

      grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)

      2、oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权

      

      grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限

      grant drop on tablename to zhangsan;//授予删除表的权限

      grant insert on tablename to zhangsan;//授予插入的权限

      grant update on tablename to zhangsan;//授予修改表的权限

      grant insert(id) on tablename to zhangsan;

      grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和update

      grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限

      五、撤销权限

      基本语法同grant,关键字为revoke

      六、查看权限

      select * from user_sys_privs;//查看当前用户所有权限

      select * from user_tab_privs;//查看所用用户对表的权限

      七、操作表的用户的表

      

      select * from zhangsan.tablename

      八、权限传递

      即用户A将权限授予B,B可以将操作的权限再授予C,命令如下:

      grant alert table on tablename to zhangsan with admin option;//关键字 with admin option

      grant alert table on tablename to zhangsan with grant option;//关键字 with grant option效果和admin类似

      九、角色

      角色即权限的集合,可以把一个角色授予给用户

      create role myrole;//创建角色

      grant create session to myrole;//将创建session的权限授予myrole

      grant myrole to zhangsan;//授予zhangsan用户myrole的角色

      drop role myrole;删除角色

    Oracle建立表空间和用户                 
     

    [sql] view plain copy
     
    1. 建立表空间和用户的步骤:  
    2. 用户  
    3. 建立:create user 用户名 identified by "密码";  
    4. 授权:grant create session to 用户名;  
    5.             grant create table to  用户名;  
    6.             grant create tablespace to  用户名;  
    7.             grant create view to  用户名;  
    [sql] view plain copy
     
    1. 表空间  
    2. 建立表空间(一般建N个存数据的表空间和一个索引空间):  
    3. create tablespace 表空间名  
    4. datafile ' 路径(要先建好路径)***.dbf  ' size *M  
    5. tempfile ' 路径***.dbf ' size *M  
    6. autoextend on  --自动增长  
    7. --还有一些定义大小的命令,看需要  
    8.  default storage(  
    9.  initial 100K,  
    10.  next 100k,  
    11. );  
    [sql] view plain copy
     
    1. 例子:创建表空间  
    2. create tablespace DEMOSPACE   
    3. datafile 'E:/oracle_tablespaces/DEMOSPACE_TBSPACE.dbf'   
    4. size 1500M   
    5. autoextend on next 5M maxsize 3000M;  
    6. 删除表空间  
    7. drop tablespace DEMOSPACE including contents and datafiles  
    
    
    [sql] view plain copy
     
    1. 用户权限  
    2. 授予用户使用表空间的权限:  
    3. alter user 用户名 quota unlimited on 表空间;  
    4. 或 alter user 用户名 quota *M on 表空间;  


    完整例子:

    [sql] view plain copy
     
    1. --表空间  
    2. CREATE TABLESPACE sdt  
    3. DATAFILE 'F: ablespacedemo' size 800M  
    4.          EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;   
    5. --索引表空间  
    6. CREATE TABLESPACE sdt_Index  
    7. DATAFILE 'F: ablespacedemo' size 512M           
    8.          EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;       
    9.   
    10. --2.建用户  
    11. create user demo identified by demo   
    12. default tablespace std;  
    13.    
    14. --3.赋权  
    15. grant connect,resource to demo;  
    16. grant create any sequence to demo;  
    17. grant create any table to demo;  
    18. grant delete any table to demo;  
    19. grant insert any table to demo;  
    20. grant select any table to demo;  
    21. grant unlimited tablespace to demo;  
    22. grant execute any procedure to demo;  
    23. grant update any table to demo;  
    24. grant create any view to demo;  
    [sql] view plain copy
     
      1. --导入导出命令     
      2. ip导出方式: exp demo/demo@127.0.0.1:1521/orcl file=f:/f.dmp full=y  
      3. exp demo/demo@orcl file=f:/f.dmp full=y  
      4. imp demo/demo@orcl file=f:/f.dmp full=y ignore=y 
  • 相关阅读:
    201706120024 编译原理第一次作业
    P2014 选课 题解(树形DP)
    基础算法·二分答案
    P4285 [SHOI2008]汉诺塔 题解 (乱搞)
    2018.12-2019.1 TO-DO LIST
    记录一枚蒟蒻的成长(持续更新)
    P3796 【模板】AC自动机(加强版) 题解(Aho-Corasick Automation)
    BuaacodingT651 我知道你不知道圣诞节做什么 题解(逻辑)
    P2766 最长不下降子序列问题 题解(网络流)
    P2516 [HAOI2010]最长公共子序列 题解(LCS)
  • 原文地址:https://www.cnblogs.com/fiberhome/p/7273756.html
Copyright © 2011-2022 走看看