zoukankan      html  css  js  c++  java
  • oracle:用户,角色,user,roll

    创建用户,角色,管理等。

    CREATE USER username IDENTIFIED BY password
    OR IDENTIFIED EXETERNALLY
    OR IDENTIFIED GLOBALLY AS ‘CN=user[DEFAULT TABLESPACE tablespace]
    [TEMPORARY TABLESPACE temptablespace]
    [QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
    [,QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
    [PROFILES profile_name]
    [PASSWORD EXPIRE]
    [ACCOUNT LOCK or ACCOUNT UNLOCK]

    其中:

    CREATE USER username:用户名,一般为字母数字型和“#”及“_”符号。

    IDENTIFIED BY password:用户口令,一般为字母数字型和“#”及“_”符号。

    IDENTIFIED EXETERNALLY:表示用户名在操作系统下验证,该用户名必须与操作系统中所定义的用户名相同。

    IDENTIFIED GLOBALLY AS ‘CN=user’:用户名由Oracle安全域中心服务器验证,CN名字表示用户的外部名。

    [DEFAULT TABLESPACE tablespace]:默认的表空间。

    [TEMPORARY TABLESPACE tablespace]:默认的临时表空间。

    [QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace:用户可以使用的表空间的字节数。

    [PROFILES profile_name]:资源文件的名称。

    [PASSWORD EXPIRE]:立即将口令设成过期状态,用户再登录前必须修改口令。

    [ACCOUNT LOCK or ACCOUNT UNLOCK]:用户是否被加锁,默认情况下是不加锁的。

    eg:

    CREATE USER user_name IDENTIFIED BY key;

    修改用户密码:

    ALTER USER user_name IDENTIFIED BY new_key;

    也可以在sqlplus 登录后直接PASSWORD  会提示修改。

    删除用户

    DROP USER user_name;

    向用户授予系统特权

    GRANT EXECUTE ANY PROCEDURE TO suer_name [WITH ADMIN OPTION];

     后面的 WITH ADMIN OPTION 这样 用户就可以将权授给别人

    检查授予用户的系统特权

    SELECT *FROM user_sys_privs;

    撤销用户的系统特权

    REVOKE CREATE TABLE FROM user_name;

    对象特权

     向用户授予对象特权

    GRANT SELECT , INSERT ON table_name[.column_name] TO user_name [WITH GRANT OPTION];

    检查已授予的对象特权

    SELECT * FROM user_tab_privs_made [WHERE table_name='table_name'];

    检查已接收的对象特权

    SELECT *FROM user_tab_privs_recd ;

    创建同名对象

    CREATE SYNONYM ref_name FOR user_name.table_name;
    
    eg:
    CREATE SYNONYM customers FOR store.customers;

    创建公共同名对象

    CREATE PUBLIC SYNONYM ref_name FOR user_name.table_name;

    需要创建公共用户需要授权 CREATE PUBLIC SYSNONYM (可以通过system 登录授予用户)

    这样任何其他用户登录都能够利用创建的同名对象,跟上面的那个不同的是上面的只是创建的用户才能够使用。

    撤销用户对象特权

    REVOKE SELECT ON table_name FROM user_name;

    如果user_name 将权力授予了其他用户,那么其他用户也会失去权力。

    角色就是一组特权

    创建角色

    CREATE ROLE role_name [IDENTIFIED BY keyword];

    角色授权

    GRANT CREATE USER TO role_name1;
    GRANT role_name1 TO role_name2;

    将角色授予用户

    GRANT role_name TO user_name;

    检查授予用户的角色

    可以检查已经授予一个用户哪些角色

    SELECT * FROM user_role_privs;

    检查授予角色的系统特权

    可以检查已经授予一个角色哪些系统特权。

    SELECT * FROM role_sys_privs;

    检查授予角色的对象特权

    SELECT * FROM role_tab_privs;

     

    默认角色

    禁用默认角色

    通过system 将用户的角色禁用

    ALTER USER user_name DEFAULT ROLE ALL EXCEPT role_name;

    然后user_name 登录时,想开启角色

    SET ROLE role_name IDENTIFIED BY keyword;

    想清楚全部角色

    SET ROLE NONE;

    清楚特定角色

    SET ROLE ALL EXCEPT role_name;

    撤销用户的角色

    REVOKE role_name FROM user_name;

    撤销角色中的特权

    REVOKE ALL ON table_name FROM role_name;

    删除角色

    DROP ROLE role_name;
  • 相关阅读:
    LeetCode 81 Search in Rotated Sorted Array II(循环有序数组中的查找问题)
    LeetCode 80 Remove Duplicates from Sorted Array II(移除数组中出现两次以上的元素)
    LeetCode 79 Word Search(单词查找)
    LeetCode 78 Subsets (所有子集)
    LeetCode 77 Combinations(排列组合)
    LeetCode 50 Pow(x, n) (实现幂运算)
    LeetCode 49 Group Anagrams(字符串分组)
    LeetCode 48 Rotate Image(2D图像旋转问题)
    LeetCode 47 Permutations II(全排列)
    LeetCode 46 Permutations(全排列问题)
  • 原文地址:https://www.cnblogs.com/Azhu/p/2445121.html
Copyright © 2011-2022 走看看