iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >pg数据库授权
  • 229
分享到

pg数据库授权

数据库microsoftjava 2023-09-07 17:09:16 229人浏览 薄情痞子
摘要

pg数据库进行用户授权 方式一:通过navicat进行简单界面式操作(此处不讲解) 方式二:命令方式 创建用户角色 此处说明,在pg库里面用户和角色的概念其实无区别 CREATE USER/ROL

pg数据库进行用户授权

方式一:通过navicat进行简单界面式操作(此处不讲解)

方式二:命令方式

  • 创建用户角色

此处说明,在pg库里面用户和角色的概念其实无区别

CREATE USER/ROLE name [ [ WITH ] option [ ... ] ]  : 关键词 USER,ROLE; name 用户或角色名; where option can be:      SUPERUSER | NOSUPERUSER      :超级权限,拥有所有权限,默认nosuperuser。    | CREATEDB | NOCREATEDB        :建库权限,默认nocreatedb。    | CREATEROLE | NOCREATEROLE    :建角色权限,拥有创建、修改、删除角色,默认nocreaterole。    | INHERIT | NOINHERIT          :继承权限,可以把除superuser权限继承给其他用户/角色,默认inherit。    | LOGIN | NOLOGIN              :登录权限,作为连接的用户,默认nologin,除非是create user(默认登录)。    | REPLICATION | NOREPLICATION  :复制权限,用于物理或则逻辑复制(复制和删除slots),默认是noreplication。    | BYPASSRLS | NOBYPASSRLS      :安全策略RLS权限,默认nobypassrls。    | CONNECTION LIMIT connlimit   :限制用户并发数,默认-1,不限制。正常连接会受限制,后台连接和prepared事务不受限制。    | [ ENCRYPTED ] PASSWord 'password' | PASSWORD NULL :设置密码,密码仅用于有login属性的用户,不使用密码身份验证,则可以省略此选项。可以选择将空密码显式写为PASSWORD NULL。 加密方法由配置参数password_encryption确定,密码始终以加密方式存储在系统目录中。    | VALID UNTIL 'timestamp'      :密码有效期时间,不设置则用不失效。    | IN ROLE role_name [, ...]    :新角色将立即添加为新成员。    | IN GROUP role_name [, ...]   :同上    | ROLE role_name [, ...]       :ROLE子句列出一个或多个现有角色,这些角色自动添加为新角色的成员。 (这实际上使新角色成为“组”)。    | ADMIN role_name [, ...]      :与ROLE类似,但命名角色将添加到新角色WITH ADMIN OPTION,使他们有权将此角色的成员资格授予其他人。    | USER role_name [, ...]       :同上    | SYSID uid                    :被忽略,但是为向后兼容性而存在。
  • 授权命令

  GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }    [, ...] | ALL [ PRIVILEGES ] }    ON { [ TABLE ] table_name [, ...]         | ALL TABLES IN SCHEMA schema_name [, ...] }    TO role_specification [, ...] [ WITH GRANT OPTION ] ##单表授权:授权test账号可以访问schema为test的t1表grant select,insert,update,delete on test.t1 to test;##所有表授权:##shema说明:选择的模式为public,我将public模式下的所有表的增删改查授权给角色名为test的角色grant select,insert,update,delete on all tables in schema "public" to test;  GRANT { { SELECT | INSERT | UPDATE | REFERENCES } ( column_name [, ...] )    [, ...] | ALL [ PRIVILEGES ] ( column_name [, ...] ) }    ON [ TABLE ] table_name [, ...]    TO role_specification [, ...] [ WITH GRANT OPTION ]  GRANT { { USAGE | SELECT | UPDATE }    [, ...] | ALL [ PRIVILEGES ] }    ON { SEQUENCE sequence_name [, ...]         | ALL SEQUENCES IN SCHEMA schema_name [, ...] }    TO role_specification [, ...] [ WITH GRANT OPTION ] ##序列(自增键)属性授权,指定test schema下的seq_id_seq 给test用户grant select,update on sequence test.seq_id_seq to test;##序列(自增键)属性授权,给用户test授权test schema下的所有序列grant select,update on all sequences in schema "public" to test;  GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }    ON DATABASE database_name [, ...]    TO role_specification [, ...] [ WITH GRANT OPTION ]  GRANT { USAGE | ALL [ PRIVILEGES ] }    ON DOMaiN domain_name [, ...]    TO role_specification [, ...] [ WITH GRANT OPTION ] ##GRANT { USAGE | ALL [ PRIVILEGES ] }    ON FOREIGN DATA WRAPPER fdw_name [, ...]    TO role_specification [, ...] [ WITH GRANT OPTION ]## GRANT { USAGE | ALL [ PRIVILEGES ] }    ON FOREIGN SERVER server_name [, ...]    TO role_specification [, ...] [ WITH GRANT OPTION ]##GRANT { EXECUTE | ALL [ PRIVILEGES ] }    ON { { FUNCTION | PROCEDURE | ROUTINE } routine_name [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ] [, ...]         | ALL { FUNCTIONS | PROCEDURES | ROUTINES } IN SCHEMA schema_name [, ...] }    TO role_specification [, ...] [ WITH GRANT OPTION ]##  GRANT { USAGE | ALL [ PRIVILEGES ] }    ON LANGUAGE lang_name [, ...]    TO role_specification [, ...] [ WITH GRANT OPTION ]## GRANT { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] }    ON LARGE OBJECT loid [, ...]    TO role_specification [, ...] [ WITH GRANT OPTION ]## GRANT { { CREATE | USAGE } [, ...] | ALL [ PRIVILEGES ] }    ON SCHEMA schema_name [, ...]    TO role_specification [, ...] [ WITH GRANT OPTION ] ##连接模式权限,授权test访问public模式权限grant usage on schema "public" to test; GRANT { CREATE | ALL [ PRIVILEGES ] }    ON TABLESPACE tablespace_name [, ...]    TO role_specification [, ...] [ WITH GRANT OPTION ] GRANT { USAGE | ALL [ PRIVILEGES ] }    ON TYPE type_name [, ...]    TO role_specification [, ...] [ WITH GRANT OPTION ] where role_specification can be:     [ GROUP ] role_name  | PUBLIC  | CURRENT_USER  | SESSION_USER GRANT role_name [, ...] TO role_name [, ...] [ WITH ADMIN OPTION ]
  • 授权参数说明

权限说明:SELECT:允许从指定表,视图或序列的任何列或列出的特定列进行SELECT。也允许使用COPY TO。在UPDATEDELETE中引用现有列值也需要此权限。对于序列,此权限还允许使用currval函数。对于大对象,此权限允许读取对象。INSERT:允许将新行INSERT到指定的表中。如果列出了特定列,则只能在INSERT命令中为这些列分配(因此其他列将接收默认值)。也允许COPY FROMUPDATE:允许更新指定表的任何列或列出的特定列,需要SELECT权限。DELETE:允许删除指定表中的行,需要SELECT权限。TRUNCATE:允许在指定的表上创建触发器。REFERENCES:允许创建引用指定表或表的指定列的外键约束。TRIGGER:允许在指定的表上创建触发器。CREATE:对于数据库,允许在数据库中创建新的schematableindexCONNECT:允许用户连接到指定的数据库。在连接启动时检查此权限。TEMPORARYTEMP:允许在使用指定数据库时创建临时表。EXECUTE:允许使用指定的函数或过程以及在函数。USAGE:对于schema,允许访问指定模式中包含的对象;对于sequence,允许使用currval和nextval函数。对于类型和域,允许在创建表,函数和其他模式对象时使用类型或域。ALL PRIVILEGES:一次授予所有可用权限。
  • 权限撤销

 REVOKE [ GRANT OPTION FOR ]   { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }   [, ...] | ALL [ PRIVILEGES ] }   ON { [ TABLE ] table_name [, ...]        | ALL TABLES IN SCHEMA schema_name [, ...] }   FROM { [ GROUP ] role_name | PUBLIC } [, ...]   [ CASCADE | RESTRICT ] ##移除用户test在schema public上所有表的select权限revoke select on all tables in schema "public" from test;  REVOKE [ GRANT OPTION FOR ]   { { SELECT | INSERT | UPDATE | REFERENCES } ( column_name [, ...] )   [, ...] | ALL [ PRIVILEGES ] ( column_name [, ...] ) }   ON [ TABLE ] table_name [, ...]   FROM { [ GROUP ] role_name | PUBLIC } [, ...]   [ CASCADE | RESTRICT ] ##移除用户test在 public模式的t1表的id列的查询权限revoke select (id) on public.t1 from test;  REVOKE [ GRANT OPTION FOR ]   { { USAGE | SELECT | UPDATE }   [, ...] | ALL [ PRIVILEGES ] }   ON { SEQUENCE sequence_name [, ...]        | ALL SEQUENCES IN SCHEMA schema_name [, ...] }   FROM { [ GROUP ] role_name | PUBLIC } [, ...]   [ CASCADE | RESTRICT ]##序列  REVOKE [ GRANT OPTION FOR ]   { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }   ON DATABASE database_name [, ...]   FROM { [ GROUP ] role_name | PUBLIC } [, ...]   [ CASCADE | RESTRICT ]##库  REVOKE [ GRANT OPTION FOR ]   { USAGE | ALL [ PRIVILEGES ] }   ON DOMAIN domain_name [, ...]   FROM { [ GROUP ] role_name | PUBLIC } [, ...]   [ CASCADE | RESTRICT]##  REVOKE [ GRANT OPTION FOR ]   { USAGE | ALL [ PRIVILEGES ] }   ON FOREIGN DATA WRAPPER fdw_name [, ...]   FROM { [ GROUP ] role_name | PUBLIC } [, ...]   [ CASCADE | RESTRICT]## REVOKE [ GRANT OPTION FOR ]   { USAGE | ALL [ PRIVILEGES ] }   ON FOREIGN SERVER server_name [, ...]   FROM { [ GROUP ] role_name | PUBLIC } [, ...]   [ CASCADE | RESTRICT]##  REVOKE [ GRANT OPTION FOR ]   { EXECUTE | ALL [ PRIVILEGES ] }   ON { { FUNCTION | PROCEDURE | ROUTINE } function_name [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ] [, ...]        | ALL { FUNCTIONS | PROCEDURES | ROUTINES } IN SCHEMA schema_name [, ...] }   FROM { [ GROUP ] role_name | PUBLIC } [, ...]   [ CASCADE | RESTRICT ]##REVOKE [ GRANT OPTION FOR ]   { USAGE | ALL [ PRIVILEGES ] }   ON LANGUAGE lang_name [, ...]   FROM { [ GROUP ] role_name | PUBLIC } [, ...]   [ CASCADE | RESTRICT ]##  REVOKE [ GRANT OPTION FOR ]   { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] }   ON LARGE OBJECT loid [, ...]   FROM { [ GROUP ] role_name | PUBLIC } [, ...]   [ CASCADE | RESTRICT ]##  REVOKE [ GRANT OPTION FOR ]   { { CREATE | USAGE } [, ...] | ALL [ PRIVILEGES ] }   ON SCHEMA schema_name [, ...]   FROM { [ GROUP ] role_name | PUBLIC } [, ...]   [ CASCADE | RESTRICT ]##schema权限  REVOKE [ GRANT OPTION FOR ]   { CREATE | ALL [ PRIVILEGES ] }   ON TABLESPACE tablespace_name [, ...]   FROM { [ GROUP ] role_name | PUBLIC } [, ...]   [ CASCADE | RESTRICT ]##  REVOKE [ GRANT OPTION FOR ]   { USAGE | ALL [ PRIVILEGES ] }   ON TYPE type_name [, ...]   FROM { [ GROUP ] role_name | PUBLIC } [, ...]   [ CASCADE | RESTRICT ]##REVOKE [ ADMIN OPTION FOR ]   role_name [, ...] FROM role_name [, ...]   [ CASCADE | RESTRICT ]
  • 如果用户需要创建表的权限对该角色进行全部授权之后,发现建表的时候报错说什么当前用户是一个readonly的会话可以进行下面操作进行修改

ALTER USER xx set default_transaction_read_only=NO --修改用户的会话不是只读

参考连接:https://blog.csdn.net/eagle89/article/details/112169903

来源地址:https://blog.csdn.net/weixin_44793245/article/details/127912167

--结束END--

本文标题: pg数据库授权

本文链接: https://www.lsjlt.com/news/398534.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • pg数据库授权
    pg数据库进行用户授权 方式一:通过navicat进行简单界面式操作(此处不讲解) 方式二:命令方式 创建用户角色 此处说明,在pg库里面用户和角色的概念其实无区别 CREATE USER/ROL...
    99+
    2023-09-07
    数据库 microsoft java
  • 如何查看PG数据库的权限情况
    这篇文章主要为大家展示了“如何查看PG数据库的权限情况”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何查看PG数据库的权限情况”这篇文章吧。 ...
    99+
    2024-04-02
  • MySQL数据库——MySQL GRANT:用户授权
    授权就是为某个用户赋予某些权限。例如,可以为新建的用户赋予查询所有数据库和表的权限。MySQL 提供了 GRANT 语句来为用户设置权限。 在 MySQL 中,拥有 GRANT 权限的用户才可以执行 GRANT 语句,其语法格式如下: GR...
    99+
    2023-08-31
    数据库 mysql sql
  • MongoDB数据库授权认证的实现
    目录1.与用户相关的命令2.配置mongodb登陆授权认证2.1.创建一个用户2.2.修改配置文件启用用户认证2.3.重启mongodb2.4.使用口令登陆mongodb3.授权用户...
    99+
    2024-04-02
  • MySQL数据库的授权原则有哪些
    MySQL数据库的授权原则有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。服务器重新启动的情况当mysqld启动时,所有的...
    99+
    2024-04-02
  • MySQL数据库授权的原则是什么
    本篇内容介绍了“MySQL数据库授权的原则是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  服务器重...
    99+
    2024-04-02
  • MySQL如何授权用户管理数据库
    这篇文章将为大家详细讲解有关MySQL如何授权用户管理数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、grant 普通 DBA 管理某个 MySQL 数据库的权限...
    99+
    2024-04-02
  • 数据库grant的授权命令有哪些
    本篇文章给大家分享的是有关数据库grant的授权命令有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。命令以及权限:usage  ...
    99+
    2024-04-02
  • 怎么设计数据库及授予权限
    小编给大家分享一下怎么设计数据库及授予权限,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 在数据库中...
    99+
    2024-04-02
  • 阿里云数据库数据管理授权怎么设置
    简介 在使用阿里云数据库时,数据管理授权是非常重要的一环。通过设置合适的数据管理授权,可以控制用户对数据库的访问权限,确保数据的安全性和可靠性。本文将介绍如何设置阿里云数据库数据管理授权,帮助您更好地管理和保护数据库。数据管理授权设置步骤步...
    99+
    2024-01-14
    阿里 数据管理 数据库
  • oracle数据库买不买授权什么区别
    购买 oracle 数据库授权提供完整功能集、不受数据库大小限制和多实例支持;包括官方技术支持、安全更新和软件增强功能。不购买授权则只能使用受限的免费版本,该版本有存储容量限制、单实例限...
    99+
    2024-04-19
    oracle
  • mysql怎么给用户授权某个数据库
    在MySQL中,给用户授权某个数据库可以通过以下步骤实现: 连接到MySQL数据库服务器: mysql -u root -p ...
    99+
    2024-04-09
    mysql 数据库
  • navicat怎么连接pg数据库
    要连接到PostgreSQL数据库,您可以使用Navicat的以下步骤: 打开Navicat软件并点击“连接”按钮。 在弹出...
    99+
    2024-03-15
    navicat pg数据库
  • Spring Security使用数据库登录认证授权
    目录一、搭建项目环境1、创建 RBAC五张表2、创建项目二、整合 Spring Security实现用户认证1、后端整合2、前端整合三、整合 Spring Security实现用户授...
    99+
    2024-04-02
  • pg数据库和oracle数据库有什么区别
    数据模型:PostgreSQL 使用了一种基于 SQL 标准的关系型数据模型,而 Oracle 数据库也是基于 SQL 标准的关...
    99+
    2024-04-19
    pg数据库 oracle
  • 将数据库的所有权限授予MySQL用户?
    首先,使用 CREATE 命令创建用户和密码。语法如下。CREATE USER 'yourUserName'@'localhost' IDENTIFIED BY 'yourPassword';...
    99+
    2023-10-22
  • Pycharm远程调试和MySQL数据库授权问题
    目录一、pycharm配置1、部署配置2、python解释器3、运行/调试配置二、mysql数据库授权问题1、settings.py2、mysql远程数据库授权一、pycharm配置...
    99+
    2024-04-02
  • pg数据库和mysql数据库有什么区别
    pg数据库和mysql数据库有什么区别?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!区别:1、MySQL倾向于使用者的角度...
    99+
    2024-04-02
  • SpringSecurity数据库进行认证和授权的使用
    目录一、准备工作1.1 导入相关依赖1.2 配置信息1.3 数据库准备1.4 实体类的创建1.5 Dao层的创建1.6 Service层的编写1.7 Security配置1.8 密码...
    99+
    2024-04-02
  • pg数据库版本怎么查看
    要查看 PostgreSQL 数据库的版本,可以使用以下命令: 登录到 PostgreSQL 数据库中: psql -U <...
    99+
    2024-03-15
    pg数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作