文章目录[隐藏]
数据库安全(什么是数据库安全)
我是一名在乐比特教育学习的小学生。我想向您介绍一下oracle数据库。
数据库安全控制策略概述
安全性是评价数据库的一个重要指标。Oracle数据库从三个层面采用安全控制策略:
1.系统安全。在系统层面控制数据库的访问和使用机制,包括有效的用户名和密码,是否可以连接到数据库,用户可以进行哪些系统操作等。
2.数据安全。在数据库模式对象级别控制数据库的访问和使用机制。用户必须拥有操作架构对象的权限。
3.网络安全。Oracle通过分发钱包、数字证书、SSL安全套接字和数据密钥来保证数据库的网络传输安全。
数据库安全性可以从以下几个方面进行管理
1.用户帐户管理
2.用户认证模式管理。Oracle提供多种级别的数据库用户身份验证方法,包括系统、数据库和网络身份验证方法。
3.权限和角色管理。通过管理权限和角色限制用户对数据库的访问和操作。
4.数据加密管理。数据加密保证了网络传输的安全性。
5.表空之间的设置和配额。通过设置用户在存储表空、临时表空和表空之间的配额,可以有效控制用户对数据库存储空的使用。
6.用户资源限制。配置文件设置可以限制用户对数据库资源的使用。
7.数据库审计。并监视和记录数据库中的活动,包括审核所有SQL语句、审核SQL权限、审核模式对象和审核网络活动。
接下来,我们将讨论用户管理、权限和角色管理的方法。
用户管理
用户是数据库的用户和管理者。Oracle通过设置用户和安全属性来控制用户对数据库的访问。Oracle的用户分为两类,一类是创建数据库时系统预定义的用户,另一类是DBA根据应用创建的用户。
1.预定义用户
创建oracle时创建的用户称为预定义用户,根据其角色可分为三类:
1.管理员用户:包括SYS、SYSTEM、SYSMAN、DBSNMP等。SYS是数据库中最高权限的管理员,可以启动、关闭、修改数据库,有数据字典;系统是一个助理数据库管理员。它不能启动和关闭数据库,但是可以做一些管理工作,比如创建和删除用户。SYSMAN是OEM的管理员,可以配置和管理OEM;DBSNMP用户是OEM代理,用于监控数据库。这些用户都不能删除。
2.示例模式用户:在安装Oracle或者使用odbc创建数据库时,如果选择“示例模式”会创建一些用户,在这些用户对应的模式中会生成一些数据库应用案例。这些用户包括:BI、HR、OE、PM、IX、SH等。默认情况下,这些用户被锁定,并且他们的密码已经过期。
3.内置用户:一些Oracle特性或Oracle组件需要它们自己单独的模式,因此为它们创建了一些内置用户。如APEX_PUBLIC_USER、DIP等。默认情况下,这些用户被锁定,并且他们的密码已经过期。
此外,还有两个特殊用户,SCOTT和PUBLIC。SCOTT是用于测试网络连接的用户,PUBLIC实际上是一个用户组。数据库中的任何用户都属于该用户组。如果希望将某些权限授予数据库中的所有用户,只需授权PUBLIC。
2.用户属性
创建用户时,用户必须受到安全属性的限制,主要包括:
1.用户名:在同一个数据库中,用户名是唯一的,不能与角色名相同;
2.用户认证:Oracle使用各种方法进行认证,如数据库认证、操作系统认证、网络认证等。
3.默认表空:用户创建数据库对象时,如果没有明确指明表空,系统会自动将数据库对象存储在当前用户的默认表空中。在Oracle 11g中,如果没有为用户指定缺省表空,则系统
4.临时表空:临时表空之间的分配类似于默认表空。如果没有明确指定,系统将使用数据库的临时表空作为用户的临时表空;
5.表间配额空:表间配额空限制用户可以在永久表空中使用的存储大小。默认情况下,新创建的用户在表空之间没有配额,每个用户都可以在表空中使用,不需要在临时表空之间分配配额;
6.Profile:每个用户必须有一个profile,从会话级和调用级限制用户对数据库系统资源的使用,并设置用户的密码管理策略。如果没有为用户指定概要文件,Oracle将自动为用户指定默认概要文件。
7.设置用户的默认角色。
8.账户状态:创建用户时,可以设置用户的初始状态,包括密码是否过期,账户是否锁定。
可以通过数据字典dba_users查询每个用户的属性(这里只截取前几列):
3.创建用户
创建用户的语法如下:
其中包括:
-user_name:新创建的用户的名称;
-IDENTIFIED:表示用户验证方法;
-按密码:采用数据库认证,密码为用户密码;
-外部:指定用户采用外部认证,其中:① ①AS \'certificate_DN \' \'指定用户采用ssl外部认证;②as‘kerberos _ principal _ name’指定用户采用Kerberos外部认证;
-全局为“directory_DN”:指定用户采用全局身份验证;
-Default Tablespace Tablespace _ name:设置用户的默认表空;
-临时表空间Tablespace _ name | Tablespace _ group _ name:设置用户的临时表间空/表间空组;
-quota n k | m | unlimited on tablespace _ name:指定特定表上的用户配额空;
-PROFILE profile_name:指定用户的配置文件;
-PASSWORD EXPIRE:指定用户密码过期,用户首次登录时系统会要求更改密码;
-ACCOUNT LOCK|UNLOCK:指定用户被锁定/解锁,默认为解锁。
4.修改用户
用户修改是通过ALTER实现的,语句和CREATE USER基本相同。唯一的区别是添加了默认角色选项来指定用户的默认角色:
其中包括:
-role_list:指定角色列表;
-ALL:指定所有角色;
-EXCEPT role _ list:role _ list指定的角色以外的角色;
-NONE:未指定角色。
5.锁定和解锁用户。
当用户被锁定时,他不能登录数据库,但是用户的所有数据库对象仍然可以使用。当用户解锁时,用户可以正常连接到数据库。
在Oracle中,您可以锁定不再使用的帐户。通常,不使用的帐户可以被锁定,而不是删除。
示例,锁定和解锁scott用户:
6.删除用户。
使用删除用户来删除用户。基本语法是:
如果用户拥有数据库对象,则必须使用CASCADE选项。Oracle在删除用户之前会删除用户的数据库对象。
7.查询用户信息。
在Oracle中,包含用户信息的数据字典如下:
资源限制和密码管理
在数据库中,用户的资源限制和密码管理是通过数据库配置文件来实现的,每个数据库用户都必须有一个配置文件。通常,DBA将用户分为几种类型,并为每种类型的用户创建一个配置文件。概要文件不是一个特定的文件,而是存储在SYS schema的几个表中的信息的集合。
1.资源限制
Profile通过一系列资源管理参数从会话级和呼叫级限制用户对资源的使用。会话限制是限制用户在会话期间可以使用的资源,调用资源限制是限制一条SQL语句在执行期间可以使用的资源总量。资源限制的参数如下:
1.CPU使用时间:会话或调用中使用的CPU总量;
2.逻辑读取:在一个会话或一次调用中读取物理磁盘和逻辑内存数据块的总量;
3.用户并发会话的数量;
4.用户连接到数据库的最长时间;
以下是scott用户的资源限制信息:
2.密码管理
用于数据库口令管理的oracle概要文件的主要参数如下:
1.FAILED_LOGIN_ATTEMPTS:限制用户失败的次数。一旦达到失败次数,账户将被锁定;
2.PASSWORD_LOCK_TIME:用户登录失败后,帐号被锁定的时间长度;
3.PASSWORD_LIFE_TIME:用户密码的有效天数。达到设定的天数后,密码到期,需要重新设置新密码;
下图显示了scott用户的密码管理参数设置信息:
3.查询个人资料信息。
在Oracle 11g中,包含汇总信息的数据字典如下:
权限管理
在Oracle数据库中,用户权限主要分为系统权限和对象权限。系统权限是指在数据库中基本执行某些操作的权限,或者对某个类对象进行操作的权限。对象权限主要是指对数据库对象进行某些操作的权限,如增加、删除(删除数据)、查表、纠错等。
1.系统权限
(1)系统权限概述
在Oracle 11g中,有200多个系统权限,这些权限都可以通过数据字典system_privilege_map获得。
(2)系统权限的授予
向用户授予系统权限的SQL语法是:
其中:-system_privilege_list:以逗号分隔的系统权限列表;
-所有特权:所有系统特权;
-user_name_list:用逗号分隔的用户列表;
-role_list:用逗号分隔的角色列表;
-PUBLIC:授权数据库中的所有用户;
-带管理选项:允许系统权限接收者向其他用户授予权限。
向用户授予系统权限时,需要注意:
1.只有DBA用户拥有alter database;
2.应用开发者一般需要有create table、create view、create index等系统权限;
3.一般来说,普通用户只需要拥有创建会话的权限。
4.当用户被授权使用with admin option子句时,用户可以将获得的权限授予其他用户。
(3)系统权限的恢复
用于回收用户系统权限的SQL语法如下:
回收用户系统权限时,需要注意以下三点:
1.多个管理员授予同一用户相同的权限,一个管理员收回授予该用户的系统权限,该用户将不再拥有该系统权限;
2.为了回收用户系统权限的传递性(在授权中使用admin选项),必须先回收系统权限,然后重新授予用户权限。
3.如果一个用户的权限是可传递的,授权给其他用户,那么该用户的系统权限被收回后,其他用户的系统权限不会受到影响;
2.对象权限
对象权限是指对特定模式对象的操作权限。数据库对象所有者拥有该对象的所有对象权限,对象权限的管理实际上是对象所有者对其他用户操作该对象的权限管理。在Oracle数据库中,不同类型的对象有不同的对象权限,而有些对象没有对象权限,只能通过系统权限来管理,如集群、索引、触发器、数据库链接等。
(1)授予对象权限
在Oracle数据库中,用户可以直接访问同名模式下的数据库对象。如果他们需要访问其他模式下的数据库对象,他们需要拥有相应的对象权限。对象权限授予的SQL语法是:
其中:-object_privilege_list:逗号分隔的对象权限列表;
-所有特权:所有特权;
-[图式。]object:要授权的对象;
-user_name_list:用逗号分隔的用户列表;
-role_list:用逗号分隔的角色列表;
-公共:所有用户
(2)客体权利的恢复
回收对象权限的SQL语法是:
其中:-级联约束:当引用对象权限被回收或所有特权被回收时,由引用对象权限创建的外键约束被删除;
-FORCE:在回收表中使用的用户定义对象类型的执行权限时,必须指定FORCE关键字。
回收对象权限时应注意以下三点:
1.多个管理员将同一个对象权限授予同一个用户,一个管理员回收对象权限后,该用户不再拥有该对象权限;
2.为了回收用户对象权限的传递性,需要先回收对象权限,然后再赋予用户对象权限;
3.如果一个用户的对象权限是可传递的,并且已经授权给了其他用户,那么这个用户的对象权限被收回后,其他用户的对象权限也会被收回。(值得注意的是,这个不同于系统权限传递的回收)。
3.查询权限信息。
角色管理
如果我们直接给每个用户权限,那将是一个庞大而麻烦的工作,不方便DBA管理。通过采用角色,使:
1.权限管理更方便。将角色赋予多个用户,实现不同用户的相同授权。如果要修改这些用户的权限,只需修改角色即可;
2.可以激活和关闭角色的权限。以便DBA可以方便地选择是否赋予用户某个角色;
3.提高性能。使用角色减少了数据字典中授权记录的数量。通过关闭角色,在语句执行期间减少了权限的确认。
图。用户、角色和权限的关系图
由于个人接触的数据库用户很少,角色也不是单独创建的,所以角色的创建、修改、删除、激活、禁用、授予、回收不再一一描述,只要你知道如何查询角色信息就可以了。
在Oracle中,包含角色的数据字典如下:
这篇文章是完全复制的。
最后推荐几个超详细的哔哩哔哩Java自学课程:
MySQL数据库:BV1tK4y197JC
SpringBoot+Vue前端分离项目实战:BV1Tq4y1E7i5nodeJs项目:BV1SK4y197G3JavaScript完整教程:BV1yf4y1Y7oM
以上就是由优质生活领域创作者 嘉文社百科网小编 整理编辑的,如果觉得有帮助欢迎收藏转发~
本文地址:https://www.jwshe.com/580472.html,转载请说明来源于:嘉文社百科网
声明:本站部分文章来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场。