首页 > 数据库 >6.PG数据库管理

6.PG数据库管理

时间:2023-12-23 18:13:09浏览次数:42  
标签:DATABASE postgres database 数据库 管理 PG 权限 name

1.PG数据库库属主

  • PG中的数据库属主属于创建者,只要有cretedb权限就可以创建数据库,数据库属主不一定拥有存放在该数据库中其它用户创建的对象的访问权限。
  • 数据库在创建后,允许public角色连接,即允许任何人连接
  • 数据库在创建后,不允许除了超级用户和owner之外的任何人在数据库中创建schema
  • 数据库在创建后,会自动创建名为public的schema,这个schema的all权限已经赋予给了public角色,即允许任何人在里面创建对象,但对已存在的其它用户的表不具有任何权限。

2.PG数据库权限(database) 

GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }
    ON DATABASE database_name [, ...]
    TO role_specification [, ...] [ WITH GRANT OPTION ]
    [ GRANTED BY role_specification ]
  • Create:可以在指定的数据库中创建schema权限
  • connect:可以连接到指定数据库的权限
  • temporary:可以创建临时表的权限
  • ALL:指定数据库所有的权限
  • 由于数据库在创建后,允许public角色连接,即允许任何人连接,所以如果要取消某个用户对指定数据库连接的权限,需要先取消public的连接权限,再取消用户的连接权限。
    • 授权用户连接数据库的权限
    • grant  connect on database db_name to user_name;
    • 撤销用户连接数据库的权限
    • revoke connect on database db_name from user_name;
    • revoke connect on databaese db_name from public;
    • 查看哪些用户有某个数据库connect权限
    • select datname,datactl from pg_database  where datname='db_name';

3.PG数据库环境设置

  • PG是参数设置为实例级,数据库级,用户级和会话级,而有些参数可以在所有级别中设置,优先顺序为会话级>用户级>数据库级>实例级。
ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }
ALTER DATABASE name SET configuration_parameter FROM CURRENT
ALTER DATABASE name RESET configuration_parameter
ALTER DATABASE name RESET ALL

  1)设置数据库搜索路径:

    alter database postgres  set search_path to "$user",public,schema_name;

  2)配置连接某个库时可使用的工作内存

    alter database postgres set work_mem = '8MB';

  3)配置连接某个库时可使用的维护内存

    alter database postgres set maintenance_work_mem to '256MB';

  4)配置连接某个库后执行执行语句最多时长(执行1秒超时)

    alter database postgres set statement_timeout=1000;

  5)配置某个库使用日志记录级别(设置后,对这个数据库的访问不记录日志)

    alter database postgres set log_statement=none;

  6)配置连接某个库后的wal日志写盘级别(设置后,该库的更新操作只要求本地提交)

    alter database postgres set synchronous_commit to local;

  7)配置连接某个库后禁用某个规划器(禁用indexonlyscan扫描)

    alter database postgres set enable_indexonlyscan to off;

  8)查看所有个性化配置

    \drds

  9)查询数据的连接数限制只能查看数据字典表

    select datname,datconnlimit from pg_database;

  10)设置某个个性化设置为默认值

    alter database postgres reset exit_on_error;

  11)设置所有个性化设置为默认值

    alter database postgres reset all;

4.PG数据库的属性      

  • 数据库的属性我们进行修改,修改范围是数据库名字,属主,表空间
ALTER DATABASE name RENAME TO new_name
ALTER DATABASE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER DATABASE name SET TABLESPACE new_tablespace

5.示例

  创建一个测试库mydb,归属为用户pguser,同时为mydb库分配一个新表空间tbs_mydb. 

        --创建用户
        postgres=# CREATE ROLE pguser WITH ENCRYPTED PASSWORD 'pguser';
        CREATE ROLE

        --创建表空间目录
        [postgres@pghost1~]$ mkdir -p /database/pg10/pg_tbs/tbs_mydb

        --创建表空间
        postgres=# CREATE TABLESPACE tbs_mydb OWNER pguser LOCATION '/database/pg10/pg_
            tbs/tbs_mydb';
        CREATE TABLESPACE

        --创建数据库
        postgres=# CREATE DATABASE mydb
                      WITH  OWNER = pguser
                      TEMPLATE = template0
                      ENCODING = 'UTF8'
                      TABLESPACE = tbs_mydb;
        CREATE DATABASE

        --赋权
        GRANT ALL ON DATABASE  mydb TO pguser WITH GRANT OPTION;
        GRANT ALL ON TABLESPACE tbs_mydb TO pguser;

 

 

 

    

标签:DATABASE,postgres,database,数据库,管理,PG,权限,name
From: https://www.cnblogs.com/zmc60/p/17923378.html

相关文章

  • 最大工作频率为32MHz,R7F100GPL2DFA、R7F100GPL3CFA低功耗MCU,10M08SAU169C8GGB MAX® 1
    一、RL78/G23 新一代RL78微控制器,最大工作频率为32MHz,外围功能得到进一步扩展,低功耗性能也有所提升。RL78/G23微控制器是RL78系列的新一代产品,CPU工作时的功耗为41μA/MHz,STOP(保持4KBSRAM)时的功耗为210nA,其低功耗在业内首屈一指。此外,由于采用SNOOZE模式定序器,它还能大幅度减少......
  • 【MySQL】SQL通用语法、SQL分类、约束、数据库设计、多表查询、事务
    SQL通用语法以分号结尾,可以单行/多行书写SQL语句不区分大小写,关键字建议使用大写注释单行注释:--注释或#注释多行注释:/*注释*/SQL分类DDL:操作数据库、表等DML:对表中的数据进行增删改DQL:对表中的数据进行查询DCL:对数据库进行权限控制DDL:操作数据库、表等DDL-操作......
  • tdsql(mysql版)数据库参数修改
    首先考虑赤兔管理系统修改参数;如果在赤兔管理系统无法修改参数,则需要修改mysql的参数文件一、在赤兔管理系统修改参数:1.在赤兔管理台主界面,单击左侧菜单【实例管理】>单击所需实例ID>【数据库管理】>【数据库参数】,进入数据库参数子界面。2.勾选需要更改的参数,并在对应【当前......
  • 标题管理
    情景模式-标签:TAG:在标题后面用:tag:标注任务的情景C-cC-q可以编辑TAG任务排序-A,B,C级:A,B,C:在标题前用[#A][#B][#C]标注优先级用Shift+上下键调整优先级[#A]A[#C]B[#B]C任务安排:ScheduleDeadline:DEADLINE:<2023-12-26周二>SCHEDULED:<202......
  • 【开源】基于JAVA的超市商品管理系统
    一、摘要1.1简介随着社会的发展,人们的生活水平不断地提高,超市遍布城市各个社区,它们繁荣了社会经济,也便利了人们的生活,是人们生活中不可缺少的一部份。顾客需要非常方便的找到自己想要的商品,超巿商品库存、摆放、价格方面的工作,需要一个稳定、可靠的管理系统帮助寻找管理商品的位置......
  • 实验二:数据库表的建立和操作
    第二个实验根据上述要求,可以设计以下3个表的表结构:借书表(book_borrow):借阅编号(borrow_id,主键)书籍名称(book_name)读者编号(user_id)借阅日期(borrow_date)应还日期(due_date)还书表(book_return):还书编号(return_id,主键)借阅编号(borrow_id)还书日期(return_date)是否逾期(is_overdue)用户表(user):读者编......
  • 源码安装pgsql16.1
    源码安装pgsql16.1进入postgresql官网下载源码包postgresql源码包下载地址这里以目前最新的pgsqlv16.1为例创建组:postgresgroupaddpostgres创建用户postgres并加入组postgres中useradd-gpostgrespostgres解压源码包tar-xfpostgresql-16.1.tar.gz进入解压后的目......
  • keepass口令管理实践(选做)20231405
    keepass口令管理实践(选做)任务详情个人隐私泄露,信息安全是一个大问题,参考https://post.smzdm.com/p/713042/,https://post.smzdm.com/p/713042/学习使用keepass保护自己的口令,提交实践截图。作业内容1.下载keepass官方版和中文的语言包2.将中文语言包存放在KeePassPasswordS......
  • Go操作数据库与Gorm
    Go连接MySQL首先我们来看如何使用Golang连接MySQL安装所需要的驱动gogetgithub.com/go-sql-driver/mysql导入所需要使用的包import("database/sql""fmt"_"github.com/go-sql-driver/mysql")连接MySQL需要使用的语句funcmain(){//"用户名:密码@......
  • helm secrets 和 gpg 使用
    相关链接https://github.com/jkroepke/helm-secretshttps://github.com/getsops/sops涉及命令#macinstallgpgbrewinstallgpg#生成gpgkeyexportKEY_NAME="TiexinGuo"exportKEY_COMMENT="testkeyforsops"gpg--batch--full-generate-key<......