zoukankan      html  css  js  c++  java
  • oracle建立用户与授权(转载)

    建表空间及用户:

    create tablespace 表空间名 datafile 'd:/seal.dbf' size 10M autoextend on;
    create user username identified by password default tablespace 表空间名;
    grant connect,resource,dba to username;

     

    登录超级用户sqlplus sys@orcl as sysdba

    ####################################
    # 建立用户和对用户的管理
    ####################################


    # 合法的Oracle标识符号
          1、不能是保留关键字
          2、必须使用1到30个字符。数据库的名称最多是8个字符。
    3、必须以数据库字符集中的字母字符开头
    4、只能够包含数据库字符集中的字母字符,以及以下字符:#、$、_,另外数据库链接可以包含
                  @符号和'.'(句号)
    5、不能包含引号

    # 建立用户
    create user angeos identified by angeos;
    建立了用户:angeos,密码为:angeos


    # 对用户授权
    grant connect,resource to angeos;
    对用户angeos授予了连接数据库和访问资源的权限


    # 对用户授权
    grant create session,dba to angeos;
    CREATE SESSION是一个系统特权,它可以为用户提供连接数据库的能力。
    DBA是一个具有超过120个系统特权的角色,所以它可以让用户在数据库中完成几乎任何工作。

    # 改变用户的密码
    alter user angeos identified by oracle;
    将用户angeos的密码改变为:oracle

    # 锁定帐号以及解锁
    alter user oe account unlock;
    然后用用户oe登录数据库服务器,密码为oe
    注意:用户解锁后,要重启服务。

    # 修改表空间的设置
    默认情况下,它会使用表空间SYSTEM和TEMP(用于存放临时数据)。
    不推荐采用这种方法。所以我们需要改变表空间。

    通过系统用户连接数据库服务器
    conn sys/sysadmin@hostname_services as sysdba;
    然后查看表空间
    select tablespace_name,contents from dba_tablespaces
    order by tablespace_name;
    使用USER表空间代替SYSTEM表空间
    alter user angeos default tablespace users
    temporary tablespace temp;

    尝试建立一张表
    create table table1
    (
         fieldA varchar2(10)
    )

    # 删除用户angeos
    drop user angeos;
    由于用户angeos有一张表table1,所以删除用户时,我们需要指定关键字CASCADE
    drop user angeos cascade;

    # 解释术语模式Schema
    数据库的模式定义为数据库对象的集合,而模式的名称就是拥有或者控制这个数据库对象集合的用户名称。
    所有数据库对象,例如表、视图、索引、触发器、Java存储过程、PL/SQL程序包,函数等,都是由Oracle
    数据库中的一个用户所拥有。甚至Oracle的数据词典,系统编目也是名为SYS的模式的一部分。

    用户的传统解释就是能够唯一标识一组信任凭证的名称和密码组合。

    # 解释系统特权
    在Oracle数据库中有两类特权:
    (1)对象级别特权是由用户赋予的访问或者操作数据库对象的特权。
    (2)系统特权不是控制对指定数据库对象的访问,而是用来许可对各种特性的访问,或者许可Oracle数据库中的
             特定任务。

         查询特权
         connect system/sysadmin
         desc dba_sys_privs;
         查询
                select distinct privilege from dba_sys_privs order by privilege

         赋予系统特权的语句
         GRANT system_priviege to username [with admin option];
         撤销系统特权的语句
         REVOKE system_priviege from username;

         注意:在任何用户能够连接到Oracle数据库之前,都需要向它们赋予CREATE SESSION特权,为他们提供连接许可。

    ##################################
    # 建立数据表
    ##################################

    # 语法规则
    CREATE TABLE [SCHEMA.] <tablename>(
         <coloumn_name> <datatype> [default <expression>] [<constraint>]
         [,<coloumn_name> <datatype> [default <expression>] [<constraint>]]
         [,...]
    );

    # 建表的例子
    ********************************************************************
    CREATE TABLE CD_COLLECTION (
         ALBUM_TITLE     VARCHAR2(100),
         ARTIST      VARCHAR2(100),
         COUNTRY      VARCHAR2(25),
         RELEASE_DATE     DATE,
         LABEL      VARCHAR2(25),
         PRIMARY KEY (ALBUM_TITLE, ARTIST)
    );
    ********************************************************************
    CREATE TABLE seagal.SONGS (
         SONG_TITLE      VARCHAR2(100),
         COMPOSER     VARCHAR2(100),
         LENGTH      NUMBER,
         TRACK      NUMBER,
         ARTIST      VARCHAR2(100),
         ALBUM_TITLE     VARCHAR2(100),
         FOREIGN KEY (ARTIST, ALBUM_TITLE) REFERENCES seagal.CD_COLLECTION(ARTIST,         ALBUM_TITLE),
         PRIMARY KEY (SONG_TITLE, ARTIST, ALBUM_TITLE)
    );


    ********************************************************************
    select * from seagal.cd_collection;
    select * from seagal.songs;
    ********************************************************************

    ********************************************************************
    INSERT INTO seagal.CD_COLLECTION  
    VALUES('Black Sheets of Rain', 'Bob Mould', 'USA',to_date('01-01-92','DD-MM-YY'), 'Virgin');

    INSERT INTO seagal.CD_COLLECTION 
    VALUES('Candy Apple Grey', 'Husker Du', 'USA',to_date('01/01/86','DD/MM/YY'), 'Warner Brothers');

    INSERT INTO seagal.SONGS 
    VALUES('Black Sheets of Rain','Mould', NULL,1, 'Bob Mould', 'Black Sheets of Rain');

    INSERT INTO seagal.SONGS 
    VALUES('Crystal','Mould', 3.28, 1, 'Husker Du', 'Candy Apple Grey');

    INSERT INTO seagal.SONGS 
    VALUES('Don''t want to know if you are lonely ','Hart', 3.28, 2, 'Husker Du', 'Candy Apple Grey');

    INSERT INTO seagal.SONGS 
    VALUES('I don''t know for sure','Mould', 3.28, 3, 'Husker Du', 'Candy Apple Grey');

    INSERT INTO SONGS VALUES('Black Sheets of Rain','Mould', NULL,1, 'Bob Mould', 'Black Sheets of Rain');

    COMMIT;
    *******************************************************

    ******************************************************
    DROP TABLE FRUITS;

    CREATE TABLE FRUITS (
    FRUIT VARCHAR2(12),
    COLOR VARCHAR2(12),
    QUANTITY NUMBER,
    PRICE NUMBER,
    PICKED DATE
    );

    INSERT INTO FRUITS VALUES('Apple', 'Green', 12, 0.5, '12-Sep-2002');
    INSERT INTO FRUITS VALUES('Apple', 'Red', 12, 0.5, '15-Sep-2002');
    INSERT INTO FRUITS VALUES('Mango', 'Yellow', 10, 1.5,
    '22-Sep-2002');
    INSERT INTO FRUITS VALUES('Mangosteen', 'Purple', 5, 2,
    '25-Sep-2002');
    INSERT INTO FRUITS VALUES('Durian', 'NULL', 2, 15, NULL);
    INSERT INTO FRUITS VALUES('Orange', 'Orange', 10, 1.5, '28-Aug-2002');

    COMMIT;
    *********************************************************
    COMMIT;

    # CREATE TABLE AS SELECT的语句
    通过查询一个表,并且将查询结果集物化到一个常规表中来建立表。
    复制表的结构,但是约束、索引和触发器等对象不会被放入新的表中。

    例子:
    create table emp_copy as
    select * from scott.emp;

    # 数据词典
    每一个数据库都有一个数据词典,任何管理Oracle数据库,或者使用Oracle构建应用的用户都需       要使用数据词典。
    数据词典是Oracle数据库的编目。
    当建立用户、表、约束和其它数据库对象的时候,Oracle都会自动维护一个在数据库中存储的项        目编目。

    例如:USER_TABLES视图可以展示当前用户所拥有的所有表的信息。
         使用DESCRIBE命令查看USER_TABLES视图的结构信息。

    具有DBA权限的用户可以查看DBA_TABLES
    select owner ,table_name,tablespace_name from dba_tables
    where owner in('SCOTT','HR')
    order by owner,tablesapce_name,table_name

  • 相关阅读:
    slice和splice的区别
    Js中获取对象的所有key值
    设置layUI的时间laydate 结束时间大于开始时间
    vscode前端常用插件推荐,搭建JQuery、Vue等开发环境
    安装vue脚手架
    es6中...是什么意思
    html转义字符换行以及回车等的使用
    10款让人惊叹的HTML5/jQuery图片动画特效
    基于GIS技术的水利一张图平台
    BIM + 3D GIS在岩溶强发育区跨海盾构隧道施工中的实践应用
  • 原文地址:https://www.cnblogs.com/future2012lg/p/3265094.html
Copyright © 2011-2022 走看看