【数据库】gaussDB数据库安全

文章目录

        • 前言:
        • 一、用户权限控制
            • 1、权限
            • 2、用户
            • 3、角色
            • 5、授权
            • 6、权限回收
        • 二、审计

前言:

数据库安全的目的是保护数据库系统中的数据,防止数据被泄露、篡改、破坏等。
这里我们主要从用户权限控制和审计去介绍数据库安全

一、用户权限控制
1、权限

在介绍用户和角色前,我们先来看一下什么是权限

什么是权限?
执行某些特定SQL语句的能力以及访问或维护某一特定对象的能力。

权限的类型

权限的类型 作用 例子
系统权限 用户可以执行一类特定的SQL语句 用户A想要连接数据库,则用户A需要有CREATE SESSION系统权限
对象权限 用户可以访问或维护某一特定对象 用户A访问用户B的表C,则用户A需要有表C的SELECT对象权限

系统权限是什么?

  • 用户进行系统操作的能力
  • 系统管理员(SYS用户、DBA角色)拥有所有系统权限

系统权限示例

系统权限 权限说明
CREATE SESSION 连接数据库
CREATE USER 创建新用户
ALTER USER 修改用户信息
DROP USER 删除用户
CREATE ROLE 创建新角色
DROP ANY ROLE 删除任意角色
GRANT ANY PRIVILEGE 授予/回收任意系统权限
GRANT ANY ROLE 授予/回收任意角色
GRANT ANY OBJECT PRIVILEGE 授予任意用户的对象的权限
…… ……

对象权限是什么?

  • 对数据库对象执行各种操作的能力
  • 对象的所有者(即创建对象的用户)和系统管理员(SYS用户、DBA角色)拥有该对象的所有权限。也就是说用户对自己的对象进行操作是不需要被赋予对象权限的。
  • 对象权限是对其他用户拥有的对象进行操作前需要被赋予的。

对象权限示例:

对象权限 权限说明
SELECT 访问其他用户的对象
DELETE 删除其他用户的对象数据
UPDATE 更新其他用户的对象数据
ALTER 更改其他用户的对象定义
INSERT 往其他用户的对象插入数据
INDEX 创建索引
…… ……
2、用户

作为数据库管理员,需要为每一个需要连接数据库的使用者规划一个数据库用户。

数据库用户的主要用途

  • 连接数据库。
  • 访问数据库对象和执行SQL语句。

数据库用户可以分为三类

  • 系统管理员:具有数据库的最高权限,并且具有所有的系统权限和对象权限(如SYS用户、SYSDBA用户)。
  • 安全管理员:具有CREATE USER权限的帐户。
  • 普通用户:普通用户默认具有PUBLIC对象权限,没有其他任何权限,需要系统管理员通过GRANT语句赋权。

补充:
SYS:数据库初始超级管理员用户 具有数据库的最高权限,并且具有所有的系统权限和对象权限。 建议数据库安装后及时修改SYS初始密码。
PUBLIC:公共用户 此用户无法登录数据库,它表示所有数据库用户的集合。

如果某个权限赋于了PUBLIC,那么所有数据库的用户都可以有这个权限。 为了保障数据库的数据安全,请谨慎向PUBLIC用户授予对象权限。
若某用户想把他某个对象的某个权限授予数据库所有的用户,那他可以直接将此权限授予PUBLIC用户,可避免多次授权操作。

  1. 用户的创建
    语法
CREATE USER user_name IDENTIFIED BY password;

参数说明

  • user_name: 创建的用户名。
  • password:用户密码,需要满足密码复杂度。

注意事项:
执行该语句的用户需要有CREATE USER系统权限。
用户名不能和数据库中已存在的用户名和角色名重复。
创建用户时,需要指定用户名和密码。
SYS用户和PUBLIC用户不允许创建,是系统预置用户。

例子:
创建用户smith,密码为database_123

CREATE USER smith IDENTIFIED BY database_123;
  1. 用户的修改
    语法

你可能感兴趣的:(数据库,数据库,sql,安全)