当前位置: 首页 > news >正文

网站的维护及建设站长之家0

网站的维护及建设,站长之家0,日租酒店公寓网站怎么做,做导购网站需要多大的服务器🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁 🦄 个人主页——🎐开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的…

🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁

🦄 个人主页——🎐开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 🎐✨🍁

🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

目录

🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁

一、PostgreSQL权限概述

1.1 初始角色

1.2 权限 - PRIVILEGES

1.3 权限的组成

1.4 特殊的权限

1、owner拥有特权

2、PUBLIC

1.5 授权 - GRANT

二、Schema创建和授权实操

三、重新为用户授权

四、查询schema是否存在

五、客户端鉴权

六、postgresql 执行sql文件


一、PostgreSQL权限概述


1.1 初始角色


数据库刚创建时,会自动创建一个超级用户的角色:postgres。任何操作都是从该用户开始的。

PostgreSQL权限管理详解_pgsql权限管理_zou8944的博客-CSDN博客(摘录博客)

1.2 权限 - PRIVILEGES


角色有了,决定角色能够执行哪些数据库操作,则需要权限进行管理。PG将权限分为了两部分。这里所说的权限,主要指第二部分

  • 能否登录、创建database、创建role,这类重要权限,在创建role时指定;在pg_roles表中可查看
  • 对数据库对象的各类操作的权限,通过GRANT手动授予;在information_schema.xxx_privileges表中可查看,比如information_schema.table_privileges

1.3 权限的组成


一个完整的权限描述:角色A对表table1具有SELECT权限,有三部分组成

  • 角色:A
  • 授权目标:table1
  • 权限:SELECT

1.4 特殊的权限


1、owner拥有特权

当一个数据库对象被创建后,它会被自动分配一个owner,一般来说是执行创建语句的那个角色。大多数情况下,owner及其成员能够对该对象做任何事,如果其他人想要操作它,则需要GRANT授权。

可修改owner,超级用户、对象原本的owner、owner的成员都能够调整对象的owner

alter table table_name owner to new_owner;

2、PUBLIC

PUBLIC并不是一个真正的角色,确切地说,它应该算一个关键字,当授权的目标是它时,表示:授予系统中的所有角色,包括今后定义的角色。

PUBLIC默认是拥有以下权限

  • 本地登录
  • 对public的USAGE权限
  • 对public的CREATE权限

字面意思理解,相当于将该权限公开。

1.5 授权 - GRANT


-- 授予权限
GRANT {权限} ON {授权目标} TO {被授权角色} [WITH GRANT OPTION]
-- 授予角色
GRATE {角色} TO {被授权角色} [WITH ADMIN OPTION] [GRANTED BY 角色]

ALL PRELEGES:它是针对一个授权目标的所有权限的总和。

WITH ADMIN OPTION:授权传递,被授权的角色,可以传递授权

#  授予用户 zhangsan 数据库 kangkang 的所有权限
grant all privileges on database kangkang to zhangsan;
#  授权当前database 的指定kangll_schema的所有表的只读权限给zhangsan 角色
grant select on all tables in schema kangll_schema to zhangsan;

如下查询结果表示:kangll_test 数据中 public 下 stu 表,kangll 用户拥有所有权限, zhang 用户拥有只读权限,都是 kangll 用户授予的。

我们换个数据库查询下,可以看到 Access privileges为空,表明:其owner对该表有完整的权限


二、Schema创建和授权实操


创建数据库 kangkang, 我使用 postgres用户 完成

CREATE DATABASE kangkang;

创建名为 zhangsan 的用户,请运行以下命令:

CREATE USER zhangsan WITH PASSWORD '123456';-- 修改密码
alter user zhangsan with password 'password';

授予zhangsan用户 kangkang 数据库的所有权限

grant all privileges on database kangkang to zhangsan;

现在 使用zhangsan 用户登录数据库, 创建名为 kangll_schema 的 schema

CREATE SCHEMA kangll_schema;## 删除可以执行如下命令
DROP SCHEMA kangll_schema;

执行结果:

授予名为 zhangsan 用户对名为 kangll_schema 的 schema 下表的所有操作权限

GRANT USAGE ON SCHEMA kangll_schema to zhangsan;
grant all privileges on all tables in schema kangll_schema to zhangsan;
grant all privileges on all sequences in schema kangll_schema to zhangsan;
grant select,insert,update,delete on all tables in schema kangll_schema to zhangsan;

授权完成

kangkang数据库中创建 stu 表

CREATE TABLE kangll_schema.stu(stu_id BIGINT NOT NULL,stu_name VARCHAR(255) NOT NULL);# 插入数据
INSERT INTO kangll_schema.stu VALUES(1, 'kangll');# 查询
SELECT * FROM kangll_schema.stu;

执行过程:

可以看到 zhangsan 用户对 stu 表拥有所有权限, 也可以看到 Access privileges为空

撤销 权限后 重新分配 只读权限, zhangsan 用户拥有只读权限,且权限是 zhangsan 用户授予的 ,可以看到 Access privileges 不为空 ,为zhangsan 用户的 “r” 权限。


三、重新为用户授权


-- 取消权限
REVOKE [GRANT OPTION FOR] {权限} ON {授权目标} FROM {被授权人} [CASCADE | RESTRICT]
-- 取消角色
REVOKE [ADMIN OPTION FOR] {角色} FROM {被授权角色} [CASCADE | RESTRICT]

示例:

-- 切换到doki_database下
\c kangkang
-- 收回用户在 kangll_schema 下所有表的所有权限
REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA kangll_schema FROM zhangsan;-- 为zhangsan 赋予kangkang 数据库下的查询权限
GRANT select ON all TABLES IN SCHEMA kangll_schema to zhangsan;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA kangll_schema TO zhangsan;

执行过程:


四、查询schema是否存在


查询 PostgreSQL 数据库中是否存在某个特定的 schema,可以使用以下 SQL 命令:

SELECT * FROM information_schema.schemata WHERE schema_name = 'kangll_schema';

查询可以看到 schema_name 和 对应schema的 所属者,如果查询结果为空则对应的schema 不存在。


五、客户端鉴权


角色创建后好,还需要确认pg_hba.conf 的配置, 如果没有配置并不能直接通过网络连接到PG服务端。一般我们都是在安装完数据库就需要配置。

vim  /var/lib/pgsql/15/data/pg_hba.conf# TYPE  DATABASE        USER            ADDRESS                 METHOD# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            scram-sha-256
host    replication     all             ::1/128                 scram-sha-256
host    all             all             0.0.0.0/0               md5

配置文件说明:

TYPE

  • local:本地连接
  • host:使用TCP/IP连接

DATABASE 许连接的database

USER: 允许连接的角色

ADDRESS: 允许的客户端地址,0.0.0.0/0表示允许所以客户端连接

METHOD: 鉴权方式

  • trust:无条件允许连接
  • reject:无条件拒绝
  • password:要求客户端提供未加密的密码进行身份验证,密码在网络上以明文形式传输,如果使用SSL,可以加密传输
  • scram-sha-256:执行 SCRAM-SHA-256 身份验证,这是一种质询响应机制,这是目前最安全的方式,不过有的数据库客户端可能不支持。
  • md5:也是一种质询响应机制
  • peer:获取客户端操作系统的用户名,如果和请求连接的用户名一样。这只有在本地连接时才有用。
  • xxx:都是其它的鉴权方式,官网参考: PostgreSQL: Documentation: 15: 21.1. The pg_hba.conf File

六、postgresql 执行sql文件


# 切换到postgres用户
sudo -i -u postgres
psql -d testdb -U postgres -f  /opt/PostgreSQL/Ambari-DDL-Postgres-CREATE.sql或者
sudo -u postgres psql -d kangkang  -U  postgres    -f  /opt/PostgreSQL/Ambari-DDL-Postgres-CREATE.sql

参考原文链接:PostgreSQL权限管理详解_pgsql权限管理_zou8944的博客-CSDN博客

http://www.hkea.cn/news/950536/

相关文章:

  • 文件什么上传到wordpress泉州seo技术
  • 网站地址地图怎么做网页制作的软件有哪些
  • 如何用万网建设网站口碑营销策划方案
  • 做网站的基础架构东莞seo建站公司
  • 嘉兴做网站的哪家好龙岗网站制作
  • 论坛做网站好吗百度官方网页
  • 微信开发者工具获取系统日期seo优化一般包括
  • 怎么用文本做网站百度排行榜风云榜
  • 未来网站开发需求多搜索网站有哪几个
  • 网站建设 成都郑州高端网站制作
  • 快站怎么做淘客网站深圳关键词
  • 做网站时如何去掉网站横条小红书软文案例
  • 图虫南宁百度快速排名优化
  • 上城网站建设app推广文案
  • 网站建设特点宁波seo搜索引擎优化公司
  • 地产商网站建设网球新闻最新消息
  • 做爰全过程网站免费的视频谷歌seo搜索引擎
  • 怎么架设网站seo推广培训
  • 自己网站做问卷调查网页设计学生作业模板
  • 清远企业网站排名深圳网站建设系统
  • 互助平台网站建设费用卡点视频免费制作软件
  • 上海做b2b国际网站公司排名优化公司电话
  • 裙晖wordpress重庆seo整站优化
  • 乌克兰网站后缀谷歌浏览器下载电脑版
  • 建设部网站撤销注册资质的都是公职人员吗正规网络公司关键词排名优化
  • 杂志网站建设推广方案铜川网络推广
  • 网站建设后怎么搜索引擎优化解释
  • 网站建设维护 天博网络成都营销型网站制作
  • 秦皇岛北京网站建设百度广告投放电话
  • 团购做的比较好的网站营销推广ppt