• Oracle数据库系统安全管理(一)


    目录

    1.系统安全管理机制

    2.创建用户

    (1)可视化方式创建用户

    ①新建一个管理员连接

    ②创建用户

    ③设置用户名和密码 

    ④设置用户角色

    ⑤设置系统权限

    ⑥设置限额选项

    ⑦SQL选项

    ⑧根据新用户新建连接

    (2)命令行的方式创建用户

    ①创建用户 

    (3)管理用户 

    ①修改用户

    ②删除用户


    Oracle学习的相关知识点(汇总)

    1.系统安全管理机制

    • 对用户登录进行身份认证。 当用户登录到数据库系统时,系统 对该用户的账号和口令进行认证, 包括确认用户账户是否有效以及能 否访问数据库系统。
    • 对用户操作进行权限控制。 当用户登录到数据库后,只能对数 据库中的数据在允许的权限内进行 操作。数据库管理员(DBA)对数 据库的管理具有最高的权限。

    用户对数据库进行操作,必须满足下面的条件:

    • 登录Oracle服务器时必须通过身份验证(前面我们在使用SQL DEVELOPER连接数据库的时候,都是首先要进行登录的,不然连接不了)。
    • 必须是该数据库的用户或者是某一数据库角色的成员。
    • 必须有执行该操作的权限(对数据库的权限都是可以通过管理员授予的)。

    2.创建用户

    新建的用户只有通过管理员授权之后才能获得系统数据库的使用权限,否则该用户只有连接数据的权限。

    (1)可视化方式创建用户

    ①新建一个管理员连接

    提示:其他用户中包含了目前所有的用户(包含管理员和超级管理员)。

    ②创建用户

    右击“其他用户”,点击“创建用户”

    ③设置用户名和密码 

    • 口令已失效(用户必须在下载登录时更改):撤销原来的口令,撤销后可以更改用户口令。
    • 账户已锁定:表示锁定用户的账户并禁止访问该账户。
    • 默认表空间:为用户创建的对象选择默认的表空间。
    • 临时表空间:为用户创建的对象选择临时表空间。 

    ④设置用户角色

    提示:这里授权用户的角色为CONNECT; 

    赋予角色权限

    • 角色名:角色的名称;
    • 已授予:选中之后,表示将角色授予给当前新用户;
    • 管理员:表示新用户是否可以将角色授予其他的用户或者角色,默认为禁用,选中复选框可以解除禁用;
    • 默认值:选中之后,表示用户一旦登录到系统中,系统会将所选角色设置为用户默认。

    ⑤设置系统权限

    可授予用户创建,修改,删除数据库对象操作的权限。

    以下是这个是给用户授予的权限

    -- SYSTEM PRIVILEGES
    GRANT ALTER ANY TABLE TO "ZXB" ;(修改表)
    GRANT SELECT ANY TABLE TO "ZXB" ;(查询)
    GRANT DELETE ANY TABLE TO "ZXB" ;(删除)
    GRANT INSERT ANY TABLE TO "ZXB" ;(插入)
    GRANT CREATE ANY TABLE TO "ZXB" ;(创建表)

    ⑥设置限额选项

    对新建用户指定对应的表空间的大小限额。勾选无限制或者指定限额的大小及单位。 

    ⑦SQL选项

    可以查看相应的创建新用户的SQL语句。 

    点击“应用”,完成创建。 

    ⑧根据新用户新建连接

    第一步:新建一个表,对上面授予的权限进行测试

    --新建一个表
    CREATE TABLE DEMO(id int);

    第二步测试:删除,创建表,插入,修改,查询

    --批量插入
    insert all 
    into demo values(1) 
    into demo values(2)
    into demo values(3)
    select * from dual; 

    --查询
    select * from demo;

    -修改(这里添加新的的列)
    alter table demo
        add(score number); 

    --删除刚才新建的列

    alter table demo
        drop column score;

    --删除表中的一行
    delete from demo 
        where id=1;

    提示:以上的操作都没有什么问题,现在来创建一个视图,看一下该用户是否可以创建(但是我们这里并没有给新用户授予创建视图的权限)。

    CREATE VIEW Demo_view
        AS
        SELECT id
            from demo;

    如果要删除新建的用户,需要首先断开连接才能进行;

    (2)命令行的方式创建用户

     使用命令行的方式创建看起来有点麻烦

    CREATE USER /*将要创建的用户名*/

             [IDENTIFIED BY { | EXTERNALLLY | GLOBALLY AS '' }] /*表明Oracle如何验证用户*/           [DEFAULT TABLESPACE ] /*标识用户所创建对象的默认表空 间*/

             [TEMPORARY TABLESPACE ] /*标识用户的临时段的表空间*/ /*用户规定的表空间存储对象,最多可达到这个定额规定的总尺寸*/

            [QUOTA K | M | UNLIMTED ON ]

            [PROFILE ] /*将指定的概要文件分配给用户*/         

            [PASSWORD EXPIRE]

            [ACCOUNT {LOCK | NULOCK}] /*账户是否锁定*/

    说明:

    • IDENTIFIED BY:表示Oracle如何验证用户,密码。
    • DEFAULT TABLESPACE:标识用户所创建对象的默认表空间为指定的表空间,如果忽略该子句就放入SYSTEM 表空间(在上面我们是放在USERS表空间中的)。
    • TEMPORARY TABLESPACE:标识用户的临时段的表空间为指定的表空间。如果忽略该子句,临时段就默认为 SYSTEM表空间。
    • QUOTA:允许用户在以指定的表空间中分配空间定额并建立一个指定字节的定额,使用K或M为单位来指定该 定额。该定额是在表空间中用户能分配的最大空间。
    • PROFILE:将指定的概要文件分配给用户。该概要文件限制用户可使用的数据库资源的总量。如果忽略该子 句,Oracle就将DEFAULT概要文件分配给用户。
    • PASSWORD EXPIRE:使用户的密码失效。这种设置强制使用户在试图登录数据库之前更改口令。
    • ACCOUNT {LOCK | UNLOCK}:LOCK表示锁定用户的账户并禁止访问。UNLOCK表示解除用户的账户的锁定并 允许访问该账户。 

    ①创建用户 

    例子:创建一个ZXB新用户,口令:Admin123123,默认表空间为USERS,临时表空间为TEMP。

    CREATE USER ZXB
        IDENTIFIED BY Admin123123
        DEFAULT TABLESPACE USERS
        TEMPORARY TABLESPACE TEMP;

    (3)管理用户 

    ①修改用户

    ALTER USER <用户名>

            [IDENTIFIED BY { <密码>| EXTERNALLLY | GLOBALLY AS '' <外部名称>"}]

            [DEFAULT TABLESPACE <默认表空间名>]

            [TEMPORARY TABLESPACE <临时表空间名>]

            [QUOTA <数字值>K |<数字值> M | UNLIMTED ON <表空间名>]

            [PROFILE <概要文件名>]

            [PASSWORD EXPIRE]

            [ACCOUNT {LOCK | NULOCK}]

    --修改密码

    ALTER USER ZXB
        PASSWORD EXPIRE;

    提示:运行上面的这段代码之后就会弹出下面的修改密码框。

    ②删除用户

    DROP USER <用户名> [CASCADE]

    提示:如果使用CASCADE选项的话,则会删除该用户模式中的所有对象,如果不使用CASCADE的话,那么系统将会提示出错信息。

    删除创建的新用户

    DROP USER ZXB CASCADE;

  • 相关阅读:
    界面组件DevExpress WPF v23.2 - 全新升级的数据编辑器、流程图组件
    Python常见工厂函数用法
    cnpm install时,报错TypeError: randomUUID is not a function无法初始化
    transfomer中attention为什么要除以根号d_k
    OK3568 UBUNTU 安装使用I2C-TOOLS
    前端基础一:用Formdata对象来上传图片的原因
    怎样将mysql中的数据导入redis
    Mojo语言的运用
    Java数据结构与Java算法学习Day02---算法排序
    阿里、字节等神创,必须是全网最全的Netty核心原理手册
  • 原文地址:https://blog.csdn.net/Keep_Trying_Go/article/details/127075054