首页 > 数据库 >openGauss学习笔记-102 openGauss 数据库管理-管理数据库安全-客户端接入之查看数据库连接数

openGauss学习笔记-102 openGauss 数据库管理-管理数据库安全-客户端接入之查看数据库连接数

时间:2023-10-17 18:32:39浏览次数:27  
标签:postgres 查看 数据库 连接数 sa 数据库安全 openGauss

openGauss学习笔记-102 openGauss 数据库管理-管理数据库安全-客户端接入之查看数据库连接数

102.1 背景信息

当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。

  • 全局的最大连接数:由运行参数max_connections指定。
  • 某用户的连接数:在创建用户时由CREATE ROLE命令的CONNECTION LIMIT connlimit子句直接设定,也可以在设定以后用ALTER ROLE的CONNECTION LIMIT connlimit子句修改。
  • 某数据库的连接数:在创建数据库时,由CREATE DATABASE的CONNECTION LIMIT connlimit参数指定。

102.2 操作步骤

1、以操作系统用户omm登录数据库主节点。

2、使用如下命令连接数据库。

gsql -d postgres -p 8000

postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

连接成功后,系统显示类似如下信息:

gsql ((openGauss 1.0 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
openGauss=# 

3、查看全局会话连接数限制。

openGauss=# SHOW max_connections;
    max_connections
-----------------
    800
(1 row)

其中800是最大会话连接数。

4、查看已使用的会话连接数。

img 须知: 除了创建的时候用双引号引起的数据库和用户名称外,以下命令中用到的数据库名称和用户名称,其中包含的英文字母必须使用小写。

a、查看指定用户的会话连接数上限。

执行如下命令查看连接到指定用户omm的会话连接数上限。其中-1表示没有对用户omm设置连接数的限制。

openGauss=# SELECT ROLNAME,ROLCONNLIMIT FROM PG_ROLES WHERE ROLNAME='omm';
    rolname  | rolconnlimit
----------+--------------
    omm |           -1
(1 row)

b、查看指定用户已使用的会话连接数。

执行如下命令查看指定用户omm已使用的会话连接数。其中,1表示omm已使用的会话连接数。

openGauss=# CREATE OR REPLACE VIEW DV_SESSIONS AS
            SELECT
            sa.sessionid AS SID,
            0::integer AS SERIAL#,
            sa.usesysid AS USER#,
            ad.rolname AS USERNAME
            FROM pg_stat_get_activity(NULL) AS sa
            LEFT JOIN pg_authid ad ON(sa.usesysid = ad.oid)
            WHERE sa.application_name <> 'JobScheduler';
openGauss=# SELECT COUNT(*) FROM DV_SESSIONS WHERE USERNAME='omm';
count
\---------------------
        1
(1 row)

c、查看指定数据库的会话连接数上限。

执行如下命令查看连接到指定数据库postgres的会话连接数上限。其中-1表示没有对数据库postgres设置连接数的限制。

openGauss=# SELECT DATNAME,DATCONNLIMIT FROM PG_DATABASE WHERE DATNAME='postgres'; 
datname  | datconnlimit
----------+--------------
    postgres |           -1
(1 row)

d、查看指定数据库已使用的会话连接数。

执行如下命令查看指定数据库postgres上已使用的会话连接数。其中,1表示数据库postgres上已使用的会话连接数。

openGauss=# SELECT COUNT(*) FROM PG_STAT_ACTIVITY WHERE DATNAME='postgres';
count 
---------------------
1
(1 row)

e、查看所有用户已使用会话连接数。

执行如下命令查看所有用户已使用的会话连接数。

openGauss=# CREATE OR REPLACE VIEW DV_SESSIONS AS
            SELECT
            sa.sessionid AS SID,
            0::integer AS SERIAL#,
            sa.usesysid AS USER#,
            ad.rolname AS USERNAME
            FROM pg_stat_get_activity(NULL) AS sa
            LEFT JOIN pg_authid ad ON(sa.usesysid = ad.oid)
            WHERE sa.application_name <> 'JobScheduler';
openGauss=# SELECT COUNT(*) FROM DV_SESSIONS;
count
---------------------
10
(1 row)

标签:postgres,查看,数据库,连接数,sa,数据库安全,openGauss
From: https://blog.51cto.com/shuchaoyang/7908477

相关文章

  • 请不要再用整数ID值插入数据库
    数据库设计在现代应用程序中不仅要满足数据完整性和性能需求,还需要考虑安全性。本文将讨论如何同时提高数据库的安全性和数据检索性能,以满足现代应用的需求。数据安全性的挑战整数ID的安全性问题在传统数据库设计中,使用整数ID作为主键可能存在安全风险,因为它们很容易被猜测......
  • python连接数据库
    importpymysqlfrompymysql.constantsimportCLIENT'''pymysql执行多条SQL语句8.0版本之后需要在建立连接的时候添加参数client_flag=CLIENT.MULTI_STATEMENTS'''#打开数据库连接db=pymysql.connect(host='localhost',user='root',......
  • 数据库SQL实战|牛客网(查找入职员工时间排名倒数第三的员工所有信息)
    描述有一个员工employees表简况如下: 请你查找employees里入职员工时间排名倒数第三的员工所有信息,以上例子输出如下:输出:10005|1955-01-21|Kyoichi|Maliniak|M|1989-09-12droptableifexists`employees`;CREATETABLE`employees`(`emp_no`int(11)NOTNULL,`bir......
  • Java程序优化访问数据库的技巧集锦
    大多数应用程序都需要访问数据库。据统计,在一个应用中,通过JDBC访问数据库的代码会占到30%左右。访问数据库的效率是决定程序的运行性能的关键因素之一。提高程序访问数据库的效率的总的原则是:减少建立数据库连接的次数,减少向数据库提交的SQL语句的数目,及时释放无用的Connection、St......
  • Spring 操作 达梦数据库
    Spring操作达梦数据库 一、前提条件本篇博客以访问本地达梦数据库(DM8)为基础进行演示。(前提:本地已经安装了DM8数据库!)关于Windows安装达梦数据库,请参考博客:Windows安装达梦数据库关于Docker安装达梦数据库,请参考博客:Docker安装达梦数据库关于JDBC方式操作达梦......
  • PHP轮子批量替换数据库前缀
    <?phpinclude_once('fix_mysql.inc.php');//设置好相关信息echo'<metacharset="utf-8">';$dbserver='localhost';$dbname='test';//替换成你的数据库名$dbuser='root';//替换成你的数据库用户名$dbpassword='123......
  • mybatis-generator生成sqlite3数据库代码
    问题问题:使用mybatis-generator生成sqlite3的代码时,金额是double,时间是string类型表格式如下CREATETABLEtest(idintegerprimarykeyautoincrement,--idamountnumberic,--金额create_timeDATETIMEDEFAULTCURRENT_TIMESTAMP,......
  • SQL_导出SQLserver数据库表和数据
    1.选择数据,右键。任务----生成脚本 2.选择具体的数据库对象 3.输入要保存的路径,点击高级。  4.在高级脚本编写选项中,选择架构和数据 ......
  • U8 数据库表结构
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★1、.ufysftem库      此库是系统参数数据库,其中主要存放各个帐套的共用信息,意义很大,日常应用的也很多。      A.ua_account:是帐套信息表,其中系统帐套存放路径、帐套启......
  • java serverlets使用数据源连接oracle数据库,并执行查询操作代码
    packagechap03;importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.PreparedStatement;importjava.sql.Statement;importjava.u......