一、概述

KingbaseES可以对用户口令与用户占用资源进行必要的管理。其管理方式,在这里与Oracle数据库进行参考比较。

KingbaseES 使用扩展插件建立的系统参数,这组参数可以对数据库资源使用进行限制。

口令有效期,单位是天,0表示无限,默认值是 30

ALTER SYSTEM SET identity_pwdexp.password_change_interval = 7;

Oracle 使用CREATE PROFILE语句创建配置文件,这是对数据库资源的一组限制。如果将配置文件分配给用户,则该用户不能超过这些限制。

指定同一密码所容许运用的天数。

ALTER PROFILE DEFAULT LIMIT Password_life_time 7;

二、KingbaseES的扩展插件

为了管理用户口令和资源,使用到如下插件:

  • passwordcheck

    密码规则校验,检查密码的最小长度,所包含数字、字母和符号等要求。

  • identity_pwdexp

    口令有效期管理,可以启闭有效期管理,和设置口令有效期的天数。

  • sys_audlog

    用户登录记录管理,记载帐户登录成功和失败的历史信息。可以在ksql工具登录成功时,显示出来相关信息。以及根据配置参数值,限制登录失败次数。

  • passwordhistory

    口令历史管理, 是由数据库管理员对初次设定的口令或更改过的口令使用天数进行设置后,在修改用户口令时,自动对口令已使用天数进行相关方面的检查。如果口令不满足指定的条件,那么更改口令将不成功。

这些插件的使用方法如下:

#修改参数配置文件kingbase.conf
shared_preload_libraries = 'passwordcheck, identity_pwdexp, sys_audlog, passwordhistory'
#建立扩展
create extension passwordcheck;
create extension identity_pwdexp;
create extension sys_audlog;
create extension passwordhistory;
#默认开启口令有效期配置
identity_pwdexp.enable_common_user_autoset_interval = on
#默认关闭口令检查配置
passwordcheck.enable = on
#默认关闭口令历史管理配置
passwordhistory.enable = on

三、Oracle的配置文件

创建profile 语法:

CREATE|ALTER PROFILE profile
LIMIT { resource_parameters
| password_parameters
}...
[ CONTAINER = { CURRENT | ALL } ] ;

四、KingbaseES 用户口令配置项

1、连续尝试失败次数

允许帐户登录到用户帐户的连续失败尝试次数,如果达到失败次数,则帐户被锁定。

  • KingbaseES 环境参数

    #可设置最大失败次数,默认值为  2147483647
    sys_audlog.max_error_user_connect_times = 2147483647 #默认值为 0 , 不限次数
    sys_audlog.error_user_connect_times = [0,errtimes_max]
  • Oracle profile 参数

    #默认值为 10
    FAILED_LOGIN_ATTEMPTS { integer | UNLIMITED | DEFAULT }

2、用户被锁定的时长

指定帐户在指定连续失败的登录尝试次数后,将被锁定的时长。

  • KingbaseES 环境参数

    #被锁定的分钟数,默认值为 0 分钟
    sys_audlog.error_user_connect_interval = [0,int_max]
  • Oracle profile 参数

    #被锁定的天数,默认值为 1 天
    PASSWORD_LOCK_TIME{ integer | UNLIMITED | DEFAULT }

3、口令的有效期

指定同一密码可用于身份验证的天数,在限期内未更改密码,则密码将过期,并且会拒绝进一步的连接。

  • KingbaseES 环境参数

    #可设置最大有效期的天数,默认值为 30 天
    identity_pwdexp.max_password_change_interval = [30,int_max] #最大有效期的天数,默认值为 30 天
    identity_pwdexp.password_change_interval = [1,interval_max]
  • Oracle profile 参数

    #有效期的天数,默认值为 180  天
    PASSWORD_LIFE_TIME { integer | UNLIMITED | DEFAULT }

4、口令重复使用

指定密码不能重复使用的天数。

  • KingbaseES 环境参数

    #不能重复使用的天数,默认值为 0 天,即不限制口令重复使用
    passwordhistory.password_time = [0,int_max]
  • Oracle profile 参数

    #不能重复使用的天数,默认值为  UNLIMITED
    PASSWORD_REUSE_TIME { integer | UNLIMITED | DEFAULT } #重新使用当前密码之前所需的密码更改次数,默认值为 UNLIMITED
    PASSWORD_REUSE_MAX { integer | UNLIMITED | DEFAULT }

    这两个参数必须一起设置,要使这些参数产生任何效果,必须为它们指定一个值。

    • 如果为这两个参数都指定了值,则在为 指定的天数中,将密码更改为 指定的次数之前,用户无法重复使用密码。

      例如,如果 PASSWORD_REUSE_TIME 30 和 PASSWORD_REUSE_MAX 10,则如果密码已更改 10 次,则用户可以在 30 天后重复使用该密码。

    • 如果为其中一个参数指定一个值,并为另一个参数指定UNLIMITED,则用户永远不能重复使用密码。

    • 如果为任一参数指定默认值,则Oracle数据库将使用默认配置文件中定义的值。

    • 如果将这两个参数都设置为UNLIMITED,则数据库会忽略这两个参数。如果省略这两个参数,这是默认值。

5、口令宽限期

在口令失效前,给予的重新设该口令的宽限天。当口令失效之后,会在登录时会出现警告信息显示该天数。如果没有在宽限天内修改口令,口令将失效。

  • KingbaseES 环境参数

    #无此功能
  • Oracle profile 参数

    #宽限期的天数,默认值为 7 天
    PASSWORD_GRACE_TIME { integer | UNLIMITED | DEFAULT }

6、非活跃用户

允许的连续不登录用户帐户的天数,超过此天数,该帐户将被锁定。

  • KingbaseES 环境参数

    #无此功能
  • Oracle profile 参数

    #连续不登录帐户的天数,最小值为 15 天,默认值为 UNLIMITED
    INACTIVE_ACCOUNT_TIME { integer | UNLIMITED | DEFAULT }

7、口令复杂度

指定密码的最小长度,所包含数字、字母和符号等要求,如果不能通过口令复杂度检查,则不能创建用户,或修改用户口令。

  • KingbaseES 环境参数

    #密码中的最小数字个数,默认值为 2
    passwordcheck.password_condition_digit = 2 #密码中的最小字母个数,默认值为 2
    passwordcheck.password_condition_letter = 2 #密码中的最小符号个数,默认值为 2
    passwordcheck.password_condition_punct = 0 #用户的最小密码长度,默认值为 8
    passwordcheck.password_length = [8,63]

    口令包含的特殊符号是指,除了空白符、数字、英文字母、单引号之外的所有可见字符。

  • Oracle profile 参数

    #允许将 PL/SQL 密码复杂性验证脚本作为参数传递给语句
    PASSWORD_VERIFY_FUNCTION { function | NULL | DEFAULT }

    Oracle 数据库提供了验证函数,但您可以创建自己的例程或改用第三方软件。

    • VERIFY_FUNCTION

      • 检查密码是否与用户名相同
      • 检查密码是否至少包含四个字符,包括一个字母、一个数字和一个标点符号。
      • 检查密码是否太简单。要求,长度 4,字母 1,数字1 ,特殊符号 1。
      • 检查密码是否与之前的密码至少相差3个字母
    • VERIFY_FUNCTION_11G
    • ORA12C_VERIFY_FUNCTION
    • ORA12C_STRONG_VERIFY_FUNCTION
    • ORA12C_STIG_VERIFY_FUNCTION

五、用户资源配置项

1、并发会话数

限制用户能建立多少并发连接 。

  • KingbaseES DDL

    #限制指定用户的并发连接数
    CREATE|ALTER USER role_specification CONNECTION LIMIT 10 ;
  • Oracle profile 参数

    #限制用户的并发连接数
    SESSIONS_PER_USER { integer | UNLIMITED | DEFAULT }

2、会话时长

指定会话期间允许的连续非活动时间, 用于避免不必要的连接。

  • KingbaseES 环境参数

    设定任何客户端空载间隔的最大允许持续时间(秒),默认值 0,不限制。
    client_idle_timeout = 0
  • Oracle profile 参数

    指定会话期间允许的连续非活动时间,以分钟为单位。
    IDLE_TIME { integer | UNLIMITED | DEFAULT }
    指定会话的总已用时间限制,以分钟为单位表示。
    CONNECT_TIME { integer | UNLIMITED | DEFAULT }

3、CPU时长

指定会话或语句的 CPU 时间限制, 用于避免不必要的CPU开销。

  • KingbaseES 环境参数

    设置任何语句执行时间的最大值(毫秒),默认值 0,不限制。
    statement_timeout = 0 设定任何空载事务的最大允许持续时间(毫秒),默认值 0,不限制。
    idle_in_transaction_session_timeout = 0 等待锁的最长时间值(毫秒),默认值 0,不限制。
    lock_timeout = 0
  • Oracle profile 参数

    指定调用(解析、执行或提取)的 CPU 时间限制(百分之一秒)。 限制单个语句可以使用的CPU量,违反限制只会创建ORA错误(=终止执行)。
    CPU_PER_CALL { integer | UNLIMITED | DEFAULT } 指定会话的 CPU 时间限制(百分之一秒)。 限制在单个会话中运行的所有SQL语句可以消耗的CPU总量,违反限制会产生ORA错误并记录到日志(=终止执行和会话)。
    CPU_PER_SESSION { integer | UNLIMITED | DEFAULT }

4、数据总量

指定会话或语句的使用数据块数量限制, 用于避免过量的内存开销。

  • KingbaseES 环境参数

    无此功能
  • Oracle profile 参数

    指定在会话中读取的数据块的允许数,包括从内存和磁盘读取的数据块。
    LOGICAL_READS_PER_SESSION { integer | UNLIMITED | DEFAULT } 指定为处理 SQL 语句(解析、执行或提取)的调用读取的数据块的允许数。
    LOGICAL_READS_PER_CALL { integer | UNLIMITED | DEFAULT } 指定会话可以在系统全局区域 (SGA) 的共享池中分配的专用空间量。
    PRIVATE_SGA { size_clause | UNLIMITED | DEFAULT }

5、综合权重

指定会话的时长、CPU时长和内存等资源,进行加权计算的总成本,

  • KingbaseES 环境参数

    无此功能
  • Oracle profile 参数

    指定会话的总资源成本,以服务单位表示。Oracle数据库将总服务单元计算为 CPU_PER_SESSION、CONNECT_TIME、LOGICAL_READS_PER_SESSION 和 PRIVATE_SGA 的加权和。
    COMPOSITE_LIMIT { integer | UNLIMITED | DEFAULT }

六、个性化配置参数

因为业务模式的区别,不同的用户对口令或资源,需要不同的参数配置方案。

  • KingbaseES 环境参数

    针对用户user01,使用口令有效期,并且要求其每周必须修改密码
    ALTER USER user01 SET
    session_preload_libraries = 'identity_pwdexp' ;
    ALTER USER user01 SET
    identity_pwdexp.password_change_interval = 7 ;
  • Oracle profile 参数

    针对用户user01,使用口令有效期,并且要求其每周必须修改密码
    CREATE PROFILE prof_user01 LIMIT
    PASSWORD_LIFE_TIME 7 ;
    ALTER USER user01
    PROFILE prof_user01;

KingbaseES 与 Oracle 用户口令管理与资源管理的更多相关文章

  1. oracle 用户的管理<二>

    oracle 用户的管理 创建用户 概述:在 oracle 中要创建一个新的用户使用 create user 语句,一般是具有 dba(数据库管理员)的权限才能使用. create user 用户名 ...

  2. linux用户管理,linux用户口令管理,linux用户组管理,linux用户权限管理详解

    linux用户管理 http://www.qq210.com/shoutu/android 用户账号的添加(新加用户需添加用户口令) :增加用户账号就是在/etc/passwd文件中为新用户增加一条记 ...

  3. Oracle 用户权限管理方法

    Oracle 用户权限管理方法 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最 ...

  4. oracle学习笔记一:用户管理(3)用户口令管理

    当某个用户不断的尝试密码进行登录数据库是很危险的,因此对密码(口令)的管理十分重要.好在我们可以限制登录次数,超过某些次数的登录将会把用户锁住,隔一段时间才允许其登录,这和你的手机是不是有点一样,你的 ...

  5. oracle用户的管理

    用户登陆 sql>conn 用户名/密码 给用户修改密码 如果给自己修改密码可以直接使用 sql>password 用户名; 如果给别人修改密码则需要具有dba的权限,或是拥有alter ...

  6. 【转】 Oracle 用户权限管理方法

    sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最高权限 system;//本地管 ...

  7. oracle用户权限管理

    oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权 1.查看当前数据库所有用户: select * from all_users; 2.查看表所支持的权限: select ...

  8. Oracle 用户权限管理

    SQL> select * from ROLE_SYS_PRIVS where ROLE='RESOURCE'; ROLE PRIVILEGE ADM --------------------- ...

  9. Oracle用户,权限,角色以及登录管理 scoot 授权

    Oracle用户,权限,角色以及登录管理 1. sys和system用户的区别 system用户只能用normal身份登陆em.除非你对它授予了sysdba的系统权限或者syspoer系统权限. sy ...

随机推荐

  1. python小题目练习(二)

    题目:输出1-100之间不包括7的倍数,含有7的数的其他数 """Author:mllContent:输出1-100之间不包括7的倍数,含有7的数的其他数Date:202 ...

  2. Linux 磁盘挂载和swap空间管理

    挂载:把指定的设备和根下面的某个文件夹建立关联 卸载:解除两者关系的过程 挂载文件系统:mount 格式:mount device mountpoint --- mount 设备名 挂载点 mount ...

  3. Tapdata 实时数据融合平台解决方案(二):理解数据中台

    作者介绍:TJ,唐建法,Tapdata 钛铂数据 CTO,MongoDB中文社区主席,原MongoDB大中华区首席架构师,极客时间MongoDB视频课程讲师. 数据中台定义: 以打通部门或数据孤岛的统 ...

  4. 网络通讯之Socket-Tcp(二)

    网络通讯之Socket-Tcp  分成2部分讲解: 网络通讯之Socket-Tcp(一): 1.如何理解Socket 2.Socket通信重要函数 3.Socket Tcp 调用的基本流程图 4.简单 ...

  5. 40+倍提升,详解 JuiceFS 元数据备份恢复性能优化之路

    JuiceFS 支持多种元数据存储引擎,且各引擎内部的数据管理格式各有不同.为了便于管理,JuiceFS 自 0.15.2 版本提供了 dump 命令允许将所有元数据以统一格式写入到 JSON 文件进 ...

  6. 教你使用CANN将照片一键转换成卡通风格

    摘要:这次是将AnimeGAN部署到Ascend 310,从而实现对自己想要图片的一键转换为我们想看到的卡通风格. 本文分享自华为云社区<[CANN训练营]CANN训练营_昇腾AI趣味应用实现A ...

  7. SQL语言的总结

    SQL语言分类:1.数据查询语言(DQL:Data Query Language),也称为"数据检索语句",用以从表中查询获得数据,常用关键字SELECT (一般常用的语句是:SE ...

  8. 浅谈 exgcd

    众所周知欧几里得算法是: \[\gcd(a,b)=\gcd(b,a\bmod \,b) \] 也叫辗转相除法. 拓展欧几里得算法(exgcd),可以用来找到形如 \(ax+by=\gcd(a,b)\) ...

  9. Vue 搭建脚手架 && 脚手架的文件结构 && 关于不同版本的Vue

    1 # 一.Vue 环境搭建 2 # 1.VsCode 编码插件:Vuter 3 # 2.Vue 脚手架安装 4 # 1).安装:npm install -g @vue/cli or yarn glo ...

  10. InnoDB 中不同SQL语句设置的锁

    锁定读.UPDATE 或 DELETE 通常会给在SQL语句处理过程扫描到的每个索引记录上设置记录锁.语句中是否存在排除该行的WHERE条件并不重要.InnoDB不记得确切的WHERE条件,但只知道哪 ...