数据库安全管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库安全管理相关的知识,希望对你有一定的参考价值。

一、Oracle身份认证方法

Oracle身份验证主要有如下几种方式:

  • 操作系统认证

  • 口令文件认证

  • 数据库密码认证

  • 外部身份验证

  • 网络身份验证

其中,操作系统认证和口令文件针对管理员账户;外部身份验证类似于操作系统认证。

1、操作系统认证

 操作系统用户添加到DBA组之后,可以直接用connect / as sysdba连接。如:

[[email protected] ~]# useradd scott
[[email protected] ~]# su scott
[[email protected] ~]$ export ORACLE_SID=orcl
[[email protected] ~]$ export ORACLE_BASE=/app/oracle
[[email protected] ~]$ export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
[[email protected] ~]$ export PATH=$PATH:$ORACLE_HOME/bin
[[email protected] ~]$ export LANG=en_US.UTF-8
[[email protected] ~]$ alias sqlplus=‘rlwrap sqlplus‘;
[[email protected] ~]$ alias rman=‘rlwrap rman‘;
[[email protected] ~]$ sqlplus /nolog
SQL> conn /as sysdba
ERROR:
ORA-01031: insufficient privileges

#另一窗口中执行

[[email protected] ~]# usermod -a -G dba scott
[[email protected] ~]# grep scott /etc/group
dba:x:500:oracle,scott

#此时再执行

SQL> conn /as sysdba
Connected.

是否启用操作系统验证,由sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES参数控制,它具有如下三个值:

  • NONE:作用是不允许通过 OS 系统用户登录数据库,需要提供用户名及密码;

  • ALL:作用是允许所有的登录方式;

  • NTS:作用是允许本地操作系统用户认证;

当sqlnet.authentication_services=none时,只能使用密码连接。

SQL> conn /as sysdba
ERROR:
ORA-01031: insufficient privileges
SQL> conn sys/asd as sysdba
Connected.

当sqlnet.authentication_services=all时,允许操作系统认证。

SQL> conn /as sysdba
Connected.

sqlnet.authentication_services=nts时,linux系统下不能使用操作系统认证。


2、口令文件的管理

[读书笔记]密码文件总结

3、数据库密码认证

 简而言之就是:conn user/[email protected]服务名

4、外部身份验证

创建用户时使用externally参数。

5、网络身份验证

 一个用于管理身份的新兴标准时使用 LDAP 服务器。Oracle Internet Directory(OID) 就是 Oracle 符合 LDAP 标准的一个产品,全局用户就是在 LDAP 目录中定义的用户。[暂时还未接触到,目前可以忽略,创建用户时使用globally参数]


二、用户管理

2.1创建用户

create user user_name

[identified by password |externally| globally] #数据库认证方式,数据库认证、操作系统认证

[default collation collation_name]#很少用到

[default tablespace tablespace_name]

[[locla] temporary tablespace tablespace_name|tablespace group name]

[quota size_clause|unlimited on tablespace_name]

[profile profile_name] #概要文件,只做了解,oracle建议使用 Database Resource Manager

[password expire]#密码立即失效

[account lock|unlock]

[enable editions]#应该是版本控制

[container=current|all]#CDB和PDB中使用

2.2修改用户

alter user 开头,后面的语句基本与create user相同。

2.3 删除用户

DROP USER user_name [ CASCADE ] ;

2.4 权限管理

oracle权限的分配与回收

1)权限分配官方文档:

http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_9013.htm#SQLRF01603

2)权限回收官方文档:

http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_9020.htm#SQLRF01609

三、角色管理

3.1 角色的创建

create role role_name;

3.2 权限分配

grant role to user/role;

3.3 角色删除

drop role;

3.4 系统预定义的角色

connect:11.2中只有create session 的权限;

resource:具有创建数据对象和过程对象的权限,还包括unlimited tablespace的权限;

dba:处了启动和关闭数据库外几乎所有权限

select_catalog_role:只有查看数据字典的权限,但没有系统权限或针对用户数据的权限。

scheduler_admin:拥有用于管理调度服务的调度程序作业所需的系统权限。

四、配置文件

ORACLE 配置文件

五、审计

【读书笔记】数据库审计



本文出自 “三国冷笑话” 博客,请务必保留此出处http://myhwj.blog.51cto.com/9763975/1888728

以上是关于数据库安全管理的主要内容,如果未能解决你的问题,请参考以下文章

massCode 一款优秀的开源代码片段管理器

如何管理在每个 git 版本中添加私有代码片段?

如何使用Android片段管理器传递变量[重复]

Android:使用支持片段管理器时复制片段

《安富莱嵌入式周报》第279期:强劲的代码片段搜索工具,卡内基梅隆大学安全可靠C编码标准,Nordic发布双频WiFi6 nRF7002芯片

片段管理访问错误可见 return false