如何使用PG数据库的GRANT命令?(pg数据库grant)

在 PostgreSQL 数据库管理中,GRANT 命令是一个非常强大的工具,使用它可以授予用户对数据库对象的权限,也可以控制数据库对象的可用性。在本文中,我们将讨论如何使用 GRANT 命令,并深入了解授权的不同类型、授权的基本语法以及如何重新撤销授权。

成都创新互联公司是一家专业提供安陆企业网站建设,专注与成都网站设计、做网站、H5建站、小程序制作等业务。10年已为安陆众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

先让我们明确一些基本概念。在 PostgreSQL 中,用户被授权对一个对象(例如表、函数、架构等)执行一个特定的操作。操作类型包括 SELECT、INSERT、UPDATE 和 DELETE。授予权限的命令就是 GRANT。另一个相关的命令是 REVOKE,它相当于撤销 GRANT 命令的功能。

语法

GRANT 的基本语法如下:

“`sql

GRANT { privilege [, …] } ON { object [, …] }

TO { grantee [, …] } [ WITH [ GRANT ] OPTION ]

“`

在上述语法中,“privilege“ 表示要授予的操作。例如,SELECT、INSERT、UPDATE、DELETE 和 REFERENCES 等。“object“ 是指要授予权限的数据库对象的名称,可以使表、视图、函数等。“grantee“ 表示接收权限的用户或角色的名称;多个用户或角色可以用逗号分隔。WITH OPTION 意味着允许被授权者将授权传递给其他用户或角色。

授权的类型

在 PostgreSQL 中,可以授予三种类型的权限:对象级权限、架构级权限和数据库级权限。

对象级权限针对特定的表、视图或序列。授予对象级权限时,可以指定控制同一对象的不同操作的不同权限。例如,你可以给用户授予 SELECT 以及 INSERT 权限,但不授予 ALTER 和 DROP 权限。

架构级权限由于干扰范围很大,被称为“更大权限”。架构级权限授予了某个角色或用户对指定架构的访问权限。如果你授予一个角色架构级权限,那么这个角色就可以访问这个架构中的所有对象。

最后是数据库级权限。数据库级权限涵盖了整个数据库。例如,如果你授予某个角色 CREATE 权限,那么这个角色就可以创建新的对象

常见的授权场景

现在,让我们看一些常见的授权场景。

之一种授权

这是一种最基本的授权。假设你想授予所有人对一个表执行 SELECT 操作的权限:

“`sql

GRANT SELECT ON table_name TO public;

“`

上述命令将授予“public”组可以对“table_name”表执行 SELECT 操作的权限。

第二种授权

假设你想授予特定的用户,例如“user_1”,对表执行不止一个操作的权限。可以将许多命令合并为一个:

“`sql

GRANT SELECT,INSERT,UPDATE,DELETE

ON table_name

TO user_1;

“`

第三种授权

假设你不只想授予一个用户对特定表的权限,而是想授予一个角色对该表的权限。在这种情况下,作为更佳实践,通常是定义一个角色,将用户添加到该角色中,然后对该角色授予权限。

使用 CREATE ROLE 命令创建一个新的角色。对于本例,我们可以将该角色命名为“role_name”:

“`sql

CREATE ROLE role_name;

“`

接下来,使用 GRANT 命令授予该角色对表执行 SELECT、INSERT、UPDATE 和 DELETE 操作的权限:

“`sql

GRANT SELECT,INSERT,UPDATE,DELETE

ON table_name

TO role_name;

“`

现在,将“user_1”添加到“role_name”角色中:

“`sql

GRANT role_name TO user_1;

“`

到目前为止,我们已经了解了授权的不同类型、授权的基本语法以及一些常见的授权场景。让我们简单讨论一下撤销授权的方法。

撤销授权

REVOKE 命令用于撤销 GRANT 命令。下面是语法:

“`sql

REVOKE { privilege [, …] } ON { object [, …] }

FROM { grantee [, …] }

“`

在上述程序中,“privilege”、“object”和“grantee”都有类似于授权语法中的定义。如果你要撤销对同一对象的多个权限,可以在撤销命令中列出所有这些权限的名称。

结论

PostgreSQL 是一个功能强大、可扩展和开源的关系型数据库管理系统。其中 GRANT 命令是 PostgreSQL 中非常强大的授权工具,它可以授予用户对数据库对象的权限,也可以控制数据库对象的可用性。在本文中,我们了解了授权的不同类型、授权的基本语法以及一些常见的授权场景和撤销授权的方法。我们希望这篇文章能够帮助您更好地使用 PostgreSQL 数据库的 GRANT 命令。

成都网站建设公司-创新互联,建站经验丰富以策略为先导10多年以来专注数字化网站建设,提供企业网站建设,高端网站设计,响应式网站制作,设计师量身打造品牌风格,热线:028-86922220

安装postgre sql时跳出langid怎么解决

安装postgre sql时跳出langid解决方法:

一、安装

首先,安装PostgreSQL客户端。

sudo apt-get install postgresql-client

然后,安装PostgreSQL服务器。

sudo apt-get install postgresql

正常情况下,安装完成后,PostgreSQL服务器会自动在本机的5432端口开启。

如果还想安装图形管理界面,可以运行下面命令,但是本文不涉及这方面内容。

sudo apt-get install pgadmin3

二、添加新用户和新数据库

初次安装后,默认生成一个名为postgres的数据库和一个名为含搭配postgres的数据库用户。这里需要注意的是,同时还生成了一个名为postgres的Linux系统用户。

下面,我们使用postgres用户,来生成其他用户和新数据库。好几种方法可以达到这个目的,这里介绍两种。

之一种方法,使用PostgreSQL控制台。

首先,新建一个Linux新用户,可以取你想要的名字,这里为dbuser。

sudo adduser dbuser

然后,切换到postgres用户。

sudo su – postgres

下一步,使用psql命令谈指登录PostgreSQL控制台。

psql

这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为”postgres=#”,表示这时已经进入了数据库控制台。以下的命令都在控制台内完成。

之一件事是使用\password命令,为postgres用户设置一个密码。

\password postgres

第二件事是创建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码。枝租

CREATE USER dbuser WITH PASSWORD ‘password’;

第三件事是创建用户数据库,这里为exampledb,并指定所有者为dbuser。

CREATE DATABASE exampledb OWNER dbuser;

第四件事是将exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限。

GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;

最后,使用\q命令退出控制台(也可以直接按ctrl+D)。

\q

第二种方法,使用shell命令行。

添加新用户和新数据库,除了在PostgreSQL控制台内,还可以在shell命令行下完成。这是因为PostgreSQL提供了命令行程序createuser和createdb。还是以新建用户dbuser和数据库exampledb为例。

首先,创建数据库用户dbuser,并指定其为超级用户。

sudo -u postgres createuser –superuser dbuser

然后,登录数据库控制台,设置dbuser用户的密码,完成后退出控制台。

sudo -u postgres psql

\password dbuser

\q

接着,在shell命令行下,创建数据库exampledb,并指定所有者为dbuser。

sudo -u postgres createdb -O dbuser exampledb

三、登录数据库

添加新用户和新数据库以后,就要以新用户的名义登录数据库,这时使用的是psql命令。

psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432

上面命令的参数含义如下:-U指定用户,-d指定数据库,-h指定服务器,-p指定端口。

输入上面命令以后,系统会提示输入dbuser用户的密码。输入正确,就可以登录控制台了。

psql命令存在简写形式。如果当前Linux系统用户,同时也是PostgreSQL用户,则可以省略用户名(-U参数的部分)。举例来说,我的Linux系统用户名为ruanyf,且PostgreSQL数据库存在同名用户,则我以ruanyf身份登录Linux系统后,可以直接使用下面的命令登录数据库,且不需要密码。

psql exampledb

此时,如果PostgreSQL内部还存在与当前系统用户同名的数据库,则连数据库名都可以省略。比如,假定存在一个叫做ruanyf的数据库,则直接键入psql就可以登录该数据库。

psql

另外,如果要恢复外部数据,可以使用下面的命令。

psql exampledb

四、控制台命令

除了前面已经用到的\password命令(设置密码)和\q命令(退出)以外,控制台还提供一系列其他命令。

\h:查看SQL命令的解释,比如\h select。

\?:查看psql命令列表。

\l:列出所有数据库。

\c :连接其他数据库。

\d:列出当前数据库的所有表格。

\d

\e:打开文本编辑器。

\conninfo:列出当前数据库和连接的信息。

五、数据库操作

基本的数据库操作,就是使用一般的SQL语言。

# 创建新表

CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);

# 插入数据

INSERT INTO user_tbl(name, signup_date) VALUES(‘张三’, ”);

# 选择记录

SELECT * FROM user_tbl;

# 更新数据

UPDATE user_tbl set name = ‘李四’ WHERE name = ‘张三’;

# 删除记录

DELETE FROM user_tbl WHERE name = ‘李四’ ;

# 添加栏位

ALTER TABLE user_tbl ADD email VARCHAR(40);

# 更新结构

ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;

# 更名栏位

ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;

# 删除栏位

ALTER TABLE user_tbl DROP COLUMN email;

# 表格更名

ALTER TABLE user_tbl RENAME TO backup_tbl;

# 删除表格

linux怎么用命令登陆postgres

(1)用户实用程序:

createdb 创建一个新的PostgreSQL的数据库(和SQL语句:CREATE DATABASE 相同)

createuser 创建一个新的PostgreSQL的用户(和SQL语句:CREATE USER 相同)

dropdb 删除数据库

dropuser 删除穗空用户

pg_dump 将PostgreSQL数据库导出到一个脚本文件

pg_dumpall 将所有的PostgreSQL数据库导出到一个脚本文件

pg_restore 从一个由pg_dump或pg_dumpall程序导出的脚本文件中恢复PostgreSQL数据库

psql 一个基于命令行的PostgreSQL交互式客户端程序

vacuumdb 清理和分析一个PostgreSQL数据库,它是客户端程序psql环境下SQL语句VACUUM的shell脚本封装,二者功能完全相同

(2)系统实用程序

initdb 创建一个用于存储数据库的PostgreSQL数据目录,并创建预定义的模板数据库template0和游族困template1,生成共享目录表 catalog;此程序通常只在安装PostgreSQL时运行一次

initlocation 创建一个辅助的PostgreSQL数据库存储区域

ipcclean 从停止的PostgreSQL服务器中清神念除共享内在和孤立信号标志

pg_ctl 启动、停止、重启PostgreSQL服务(比如:pg_ctl start 启动PostgreSQL服务,它和service postgresql start相同)

pg_controldata 显示PostgreSQL服务的内部控制信息

postgres PostgreSQL单用户模式的数据库服务

postmaster PostgreSQL多用户模式的数据库服务

4.这里面最重要的是psql这个客户端程序最为重要。启用客户端程序psql的方法是:

切换到PostgreSQL预定义的数据库超级用户postgres,启用客户端程序psql,并连接到自己想要的数据库,比如说:

psql template1

出现以下界面,说明已经进入到想要的数据库,可以进行想要的操作了。

template1=#

5.在数据库中的一些命令:

template1=# \l 查看系统中现存的数据库

template1=# \q 退出客户端程序psql

template1=# \c 从一个数据库中转到另一个数据库中,如template1=# \c sales 从template1转到sales

template1=# \dt 查看表

template1=# \d 查看表结构

template1=# \di 查看索引

========================

create database ;

\d

*删除数据库:

drop database ;

create table ( ;, ,……;);

\d

*查看某个表的状况:

\d

alter table rename to ;

drop table ;

==========================

alter table add column ;

alter table drop column ;

alter table rename column to ;

alter table alter column set default ;

alter table alter column drop default;

insert into 表名 (,,……) values (,,……);

update set = where ;

delete from where ;

vaccumdb -d sales -z

-a 对所有的数据库操作

-z 保证不断地删除失效的行,节约磁盘空间,将统计信息更新为最近的状态

7.PostgreSQL用户认证

PostgreSQL数据目录中的pg_hba.conf的作用就是用户认证,可以在/var/lib/pgsql/data中找到。

有以下几个例子可以看看:

(1)允许在本机上的任何身份连接任何数据库

TYPE DATABASEUSER IP-ADDRESS IP-MASK METHOD

local allall trust(无条件进行连接)

(2)允许IP地址为192.168.1.x的任何主机与数据库sales连接

TYPE DATABASEUSER IP-ADDRESS IP-MASK METHOD

host salesall.168.1..255.255.0 ident sameuser(表明任何操作系统用户都能够以同名数据库用户进行连接)

8.看了那么多,来一个完整的创建PostgreSQL数据库用户的示例吧

(1)进入PostgreSQL高级用户

(2)启用客户端程序,并进入template1数据库

psql template1

(3)创建用户

template1=# CREATE USER hellen WITH ENCRYPED PASSWORD’zhenzhen’

(4)因为设置了密码,所以要编辑pg_hba.conf,使用户和配置文件同步。

在原有记录上面添加md5

local all hellen md5

(4)使用新用户登录数据库

template1=# \q

psql -U hellen -d template1

PS:在一个数据库中如果要切换用户,要使用如下命令:

template1=# \!psql -U tk -d template1

9.设定用户特定的权限

还是要用例子来说明:

创建一个用户组:

sales=# CREATE GROUP sale;

添加几个用户进入该组

sales=# ALTER GROUP sale ADD USER sale1,sale2,sale3;

授予用户级sale针对表employee和products的SELECT权限

sales=# GRANT SELECT ON employee,products TO GROUP sale;

在sale中将用户user2删除

sales=# ALTER GROP sale DROP USER sale2;

10.备份数据库

可以使用pg_dump和pg_dumpall来完成。比如备份sales数据库:

如何用sqlyog实现远程连接mysql

1,sqlyog客户端,用root用户远程链接mysql时,提示“访问被拒绝”,镇败在网上搜索了一下原因。  原来是mysql没有授权其远程链接,所以你只能在客户端里面链接。  怎么解决呢?  原表数据  mysql> use mysql  mysql>喊梁 select Host,User,Password from user ;  +-++-+  | Host | User | Password |  +-++-+  | localhost | root | *DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |  | www | root | *DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |  | 127.0.0.1 | root | *DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |  | ::1 | root | *DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |  创建一个新用户  格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by “用户密码”;  grant select,update,insert,delete on *.* to identified by “komiles1234”;  执行完上面语句后,再执行  mysql> select Host,User,Password from user ;  +-++-+  | Host | User | Password |  +-++-+  | localhost | root | *DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |  | www | root | *DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |  | 127.0.0.1 | root | *DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |  | ::1 | root | *DEA65ABECC50A1FEBD9C0D0D9045E0DDB312F38F |  | 123.4.56.89 | komiles | *50663F1ECEAB844897BC272EC1AE7E83F442F649 |  +-++-+  此时,就可以用你刚才创建的用户进行远程访问了。  以下是转载

通过SQLyog来连接MySQL

(1) 执行File→New connection菜单命令。将打开连接提示对话框。单击New按钮,将创建一个新的连接,给并毁新连接定义一个名字”zyj”

(2) 单击OK按钮,在MySQL的设置窗体输入相关的数据。注意Port是安装MySQL时默认的访问端口,如果安装时未修改,则默认值为3306。

(3) 当单击Test Connection按钮时,将弹出Connection Info对话厅蔽困框。如果提示连接失败,请确定输入的用户名、密码或端口号是否正确。

(4) 当单击”确定”按钮后,就完成了SQLyog与MySQL的连接。接下来就可以通过SQLyog来进行MySQL的相关操作扮念了

$CFG->dbtype = ‘mysqli’; // ‘pgsql’, ‘mariadb’, ‘尘洞mysqli’, ‘mssql’, ‘sqlsrv’ or ‘oci’

$CFG->dblibrary = ‘native’派绝枯; //宏乱 ‘native’ only at the moment

$CFG->dbhost = ‘localhost’; // eg ‘localhost’ or ‘db.isp.com’ or IP

$CFG->dbname = ‘moodle’; // database name, eg moodle

$CFG->dbuser = ‘root’; // your database username

$CFG->dbpass = ‘123456’; // your database password

$CFG->prefix = ‘mdl_’;// prefix to use for all table names

pg 数据库grant的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于pg 数据库grant,如何使用 PG 数据库的 GRANT 命令?,安装postgre sql时跳出langid怎么解决,linux怎么用命令登陆postgres,如何用sqlyog实现远程连接mysql的信息别忘了在本站进行查找喔。

数据库运维技术服务 » 如何使用 PG 数据库的 GRANT 命令? (pg 数据库grant)

本站作者 普通

分享到:

相关推荐


C语言中实现数据库查询的代码示例 (在c 中查询数据库的代码)


数据库中的DATE类型与C语言的对应关系 (数据库date类型 对应c)


解读Oracle数据库交换分区的作用和实现方法 (oracle数据库交换分区)


高效应对突况,建立应急反应数据库 (应急反应数据库)


数据库类型的选择对系统的影响 (数据库类型的作用)


轻松查看数据库内容:使用MySQL进行数据查询 (mysql看数据库内容)


西软使用哪种数据库? (西软用什么数据库)


如何准确判断数据库中的数据是否存在? (如何判断数据库数据存在)

随机文章


记录如何在PLSQL中隐藏一条数据库记录? (plsql中隐藏某一条数据库)

滴滴:数据库下载最全攻略 (滴滴 数据库 下载)

VC技术实现高效存储大规模数据库 (vc 保存大量数据库)

教你轻松实现VS2023连接数据库实例,让你的项目更高效! (vs2023连接数据库实例)

婚介会员信息系统 管理轻松搞定 (婚介所会员管理系统 数据库)

解决金仓数据库启动问题的有效方法 (金仓数据库无法启动)

最近更新
  • SQL Server开启进销存管理(sqlserver进销存)
  • Windows用户学习Linux远程连接命令(linux 远程连接命令)
  • 手把手教你使用MySQL创建数据库(mysql手动创建数据库)
  • Oracle数据库的紧缩之路(oracle 数据库收缩)
  • 为项目构建更优性能: 使用Redis缓存(项目中使用redis缓存)
  • 备份简单又高效——Linux开源备份软件(linux 开源备份软件)
  • 改变MSSQL数据库端口号:一个简单的方法指南(改mssql数据库端口号)
  • MSSQL分区表索引:优化数据存储(mssql 分区表 索引)
  • MSSQL客户端工具:快速下载体验!(mssql客户端工具下载)
  • MSSQL独占模式加速数据库更新(mssql 独占 更新)
  • 话题SQLServer:探索最新技术发展趋势(关于SQLServer的)
  • 用Redis维护IP限制列表(redis ip限制)
  • MySQL如何运行SQL文件(mysql运行sql文件)
  • MSSQL 更新文件组结构:简便、高效、安全(MSSQL修改文件组)
  • 优秀的SQL Server:值得信赖的性能特点(sqlserver 特点)
  • MSSQL与RAVN技术结合,更好地保护数据安全(mssql ravn)
  • MSSQL数据库密码:查看指南(mssql数据库密码查看)
  • MSSQL获取月份数据实现方案(mssql 获取月份)
  • Redis缓解项目压力:细节决定成败(项目加redis)
  • 【mssql中实现多个like查询的方式】(mssql 多个like)
  • 标签

    Linux Linux教程 Linux资讯 MacOS MacOS教程 MacOS资讯 MongoDB MongoDB教程 MongoDB资讯 MSSQL MSSQL错误 MySQL mysql教程 MySQL维护 MySQL资讯 Neo4j Neo4j教程 Neo4j资讯 ORACLE Oracle优化 oracle内部视图 oracle参数 oracle开发 oracle异常修复 oracle故障处理 oracle教程 oracle维护 oracle视图 ORACLE资讯 oracle远程维护 ORA错误码 Redis Redis教程 Redis资讯 SQLServer SQLServer报错 SQLServer教程 SQLServer资讯 SQL修复 SQL异常 SQL远程处理 Windows 技术文档 操作系统 数据库

    技术标签:安装配置、性能优化、备份恢复、异常处理、数据迁移、咨询服务。

    本站导航
    • 服务范围
    • 关于我们
    • 隐私政策
    技术文章
    • 数据库技术
    • 操作系统技术
    • 教程服务
    快速搜索

    数据恢复、异常处理、MySQL、Oracle

    本站部分资源来自互联网收集,仅供用于学习和交流,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站站长删除

    © 2020 Theme by - 数据服务 . All rights reserved 苏ICP备15021567号


    • 登录
    • 注册

    安全登录
    立即注册 忘记密码?

    \du:列出所有用户。

    *创建数据库:

    *查看数据库列表:

    创建表:

    *查看表名列表:

    *重命名一个表:

    *删除一个表:

    ========================================

    *在已有的表里添加字段:

    *删除表中的字段:

    *重命名一个字段:

    *给一个字段设置缺省值:

    *去除缺省值:

    在表中插入数据:

    修改表中的某行某列的数据:

    删除表中某行数据:

    delete from ;–删空整个表

    6.要注意随时对数据库进行清理、收回磁盘空间并更新统计信息,使用下面的命令就搞定!

      2、实现远程连接(授权法)  将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。  update user set host = ’%’ where user = ’root’;  将权限改为ALL PRIVILEGES  mysql>御渗颤 use mysql;  Database changed  mysql> grant all privileges on *.* to root@’%’ identified by “root”;  Query OK, 0 rows affected (0.00 sec)  mysql> select host,user,password from user;  ++——+-+  | host| user | password |  ++——+-+  | localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |  | 192.168.1.12 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |  | %| root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |  ++——+-+  3 rows in set (0.00 sec)  这样机器就可以以用户名root密码root远程访问该机器上的MySql.  3、实现远程连接(改表法)  use mysql;  update user set host = ‘%’ where user = ‘root’;  这样在远端就可以通过root用户访问Mysql.

    :列出某一张表格的结构。

    成都创新互联科技公司主营:网站设计、网站建设、小程序制作、成都软件开发、网页设计、微信开发、成都小程序开发、网站制作、网站开发等业务,是专业的成都做小程序公司、成都网站建设公司成都做网站的公司。创新互联公司集小程序制作创意,网站制作策划,画册、网页、VI设计,网站、软件、微信、小程序开发于一体。

    分享文章:如何使用PG数据库的GRANT命令?(pg数据库grant)
    分享网址:http://www.hantingmc.com/qtweb/news47/13397.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联