• Oracle 用户管理


    创建用户:

    create user  nokey identified by zero;

    预定义账户(predefined user accounts):

    管理员账户有:sys system sysman dbsnmp. DBSNMP 用来监控数据库。

    样例用户:HR SH OE

    内部账户 如WKSYS.这些被用来一些新特性或者一些组件。

    SYS的默认密码是CHANGE_ON_INSTALL 

    SYSTEM 的默认密码MANAGER

    '

    ALTER USER NOKEY ACCOUNT LOCK(或者UNLOCK) 锁定用户

    select * from dab_users; 查看所有的用户信息

    select * from dba_ts_quotas; 查看用户的表空间限额

    select SID,SERIAL#,USERNAME FROM V$session 找出和用户相关的会话

    select owner,object_name from dba_objects where owner like ' nokey'//查看nokey 用户用户的模式对象

    drop user nokey ;删除用户

    drop user nokey CASCADE;如果用户模式下存在对象,则用这句话删除用户。

    select username from v$session where type = 'user';查看当前登录数据库的用户

     ==============================

    限制用户对资源的消耗----概要文件(user profiles)

    数据库的资源包括:CPU时间、会话的空闲时间、会话的连接时间、逻辑读(logical reads)、每个用户的并发会话数(concurrent sessions for each user)、

             私有SGA区及用户私有SQL区(private SQL Areas)

    select username, profile from dba_users;


    USERNAME PROFILE
    ------------------------------ -------------------
    MGMT_VIEW DEFAULT
    SYS DEFAULT
    SYSTEM DEFAULT
    DBSNMP DEFAULT
    SYSMAN DEFAULT
    OUTLN DEFAULT
    FLOWS_FILES DEFAULT
    MDSYS DEFAULT
    ORDDATA DEFAULT
    ORDSYS DEFAULT
    ANONYMOUS DEFAULT
    EXFSYS DEFAULT
    WMSYS DEFAULT
    XDB DEFAULT
    APPQOSSYS DEFAULT
    ORDPLUGINS DEFAULT
    APEX_030200 DEFAULT
    SI_INFORMTN_SCHEMA DEFAULT
    DIP DEFAULT
    APEX_PUBLIC_USER DEFAULT
    ORACLE_OCM DEFAULT
    XS$NULL DEFAULT

    已选择22行。

    ==========================================

    管理员的验证之--使用口令文件验证

    cmd>orapwd FILE=E:appdingqiproduct11.2.0dbhome_1databasePWDdabook.ora ENTRIES=5 FORCE=Y


    SQL> create pfile = 'E:appdingqiproduct11.2.0dbhome_1databaseinitdabook.ora'
    2 from spfile = 'E:appdingqiproduct11.2.0dbhome_1databaseSPFILEDABOOK.ORA'
    3 /

    文件已创建。

    已用时间: 00: 00: 00.17
    SQL> SHUTDOWN IMMEDIATE
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> CREATE SPFILE = 'E:appdingqiproduct11.2.0dbhome_1databaseSPFILEDABOOK.ORA'
    2 FROM PFILE = 'E:appdingqiproduct11.2.0dbhome_1databaseinitdabook.ora'
    3 /

    文件已创建。

    已用时间: 00: 00: 00.38
    SQL> STARTUP
    ORACLE 例程已经启动。

    Total System Global Area 711430144 bytes
    Fixed Size 1376968 bytes
    Variable Size 293604664 bytes
    Database Buffers 411041792 bytes
    Redo Buffers 5406720 bytes
    数据库装载完毕。
    数据库已经打开。
    SQL> CREATE USER newsuper IDENTIFIED BY zero;

    用户已创建。

    已用时间: 00: 00: 00.34
    SQL> grant sysdba to newsuper;

    授权成功。

    已用时间: 00: 00: 00.20
    SQL> connect newsuper as sysdba
    输入口令:
    已连接。
    SQL> SET PAGESIZE 25
    SQL> SET TIMING ON
    SQL> SET FEEDBACK ON
    SQL> select * from v$PWFILE_USERS;

    USERNAME SYSDB SYSOP SYSAS
    ------------------------------ ----- ----- -----
    SYS TRUE TRUE FALSE
    NEWSUPER TRUE FALSE FALSE

    已选择2行。

    这里 newsuper用户是超级用户了密码是 zero
    如果想撤销授权;使用下面的命令即可:

    revoke sysdba from newsuper;

     ==============================================

    角色和权限

    一个角色是一组相关权限的集合,角色其实也是权限,它其实是结合了多个权限。

    角色方便了权限的管理,如果要给某一类用户授予多个权限,我们可以创建一个角色,当给用户授权时,只需把角色授予用户即可,而不需要对该用户多次授权。

    SQL> show user
    USER 为 "SYS"
    SQL> create role role1
    2 /

    角色已创建。

    已用时间: 00: 00: 00.09
    SQL> create role role2 identif

    角色已创建。

    已用时间: 00: 00: 00.01
    SQL> grant create view to role

    授权成功。

    已用时间: 00: 00: 00.00
    SQL> grant insert on manager t
    grant insert on manager to rol
    *
    第 1 行出现错误:
    ORA-00942: 表或视图不存在


    已用时间: 00: 00: 00.10
    SQL> grant insert on tvb to ro
    grant insert on tvb to role1
    *
    第 1 行出现错误:
    ORA-00942: 表或视图不存在


    已用时间: 00: 00: 00.01

    SQL> create user rawman identified by zero;

    用户已创建。

    已用时间: 00: 00: 00.01
    SQL> conn rawman
    输入口令:
    ERROR:
    ORA-01045: user RAWMAN lacks C


    警告: 您不再连接到 ORACLE。
    SQL> show user
    USER 为 ""
    SQL> conn sys as sysdba
    输入口令:
    已连接。
    SQL> SET PAGESIZE 25
    SQL> SET TIMING ON
    SQL> SET FEEDBACK ON
    SQL>
    SQL> grant create session to rawman;

    授权成功。

    已用时间: 00: 00: 00.01


    SQL> grant select on system.manager to rawman;

    授权成功。

    已用时间: 00: 00: 00.14
    SQL> grant create table to rawman;

    授权成功。

    已用时间: 00: 00: 00.00
    SQL>
    SQL> grant create any index to rawman ;

    授权成功。

    已用时间: 00: 00: 00.00
    SQL> grant role1 to rawman;

    授权成功。

    SQL> SELECT * from DBA_SYS_PRIVS WHERE grantee = 'RAWMAN';

    GRANTEE PRIVILEGE ADM
    ------------------------------ ---------------------------------------- ---
    RAWMAN CREATE TABLE NO
    RAWMAN CREATE ANY INDEX YES
    RAWMAN CREATE SESSION NO

    已选择3行。

    已用时间: 00: 00: 00.07
    SQL> select * from dba_tab_privs where grantee ='RAWMAN';

    GRANTEE OWNER
    ------------------------------ ------------------------------
    TABLE_NAME GRANTOR
    ------------------------------ ------------------------------
    PRIVILEGE GRA HIE
    ---------------------------------------- --- ---
    RAWMAN SYSTEM
    MANAGER SYSTEM
    SELECT NO NO


    已选择 1 行。
    查看rawman 被授予了哪些角色:
    SQL> select granted_role from dba_role_privs where grantee = 'RAWMAN';

    GRANTED_ROLE
    ------------------------------
    ROLE1
    ===========================================================
    同时,使用rawman 连接到数据库时可以进行已经被sys授权的一些权限的操作:
    rawman 可以连接到数据库,可以查看system用户的表 manager(之前创建的table),可以创建自己的表rawman_tb1,
    等等,同时rawman还继承了role1的一些权限。(grant role1 to rawman;)
    SQL> conn rawman
    输入口令:
    已连接。
    SQL> SET PAGESIZE 25
    SQL> SET TIMING ON
    SQL> SET FEEDBACK ON
    SQL> select * from system.manager;

    MGRNO MNAME JOB
    ---------- ------------------------------ ------------------------------
    REMARK
    --------------------------------------------------------------------------------
    12 Smith manager
    3600

    13 Paul coder
    3000


    已选择2行。

    已用时间: 00: 00: 00.14
    SQL> create table rawman_tb1 (id number, name varchar(20));

    表已创建。

    已用时间: 00: 00: 00.24
    SQL> select * from rawman_tb1
    2 /

    未选定行

    已用时间: 00: 00: 00.00
    SQL> desc rawman_tb1
    名称 是否为空? 类型
    ----------------------------------------- -------- ----------------------------
    ID NUMBER
    NAME VARCHAR2(20)

    SQL> grant create any index to item;

    授权成功。

  • 相关阅读:
    sqlserver中递归写法
    keytools命令生成证书
    java中sql语句快速处理
    select * 替换写法
    oracle行转列
    oracle中查看当前用户的表结构、主键、索引
    Servlet三种实现方式
    【python之旅】python的面向对象
    【python之旅】python的模块
    【python之旅】python的基础三
  • 原文地址:https://www.cnblogs.com/happinessqi/p/3313732.html
Copyright © 2020-2023  润新知