国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

postgresql|數(shù)據(jù)庫|角色(用戶)管理工作---授權(quán)和去權(quán)以及usage和select兩種權(quán)限的區(qū)別

這篇具有很好參考價值的文章主要介紹了postgresql|數(shù)據(jù)庫|角色(用戶)管理工作---授權(quán)和去權(quán)以及usage和select兩種權(quán)限的區(qū)別。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

前言:

postgresql做為一個比較復(fù)雜的關(guān)系型的重型數(shù)據(jù)庫,不管是安裝部署,還是后期的運(yùn)行維護(hù),都還是有比較多的細(xì)節(jié)問題需要引起關(guān)注。

例如,用戶權(quán)限的合理分配,那么,什么是權(quán)限的合理分配呢? 自然是權(quán)限的最小化原則,也就是說每個用戶能夠完成其權(quán)限范圍內(nèi)的工作,而不會由于黑客攻擊,漏洞等原因造成安全方面的危險。

在寫這篇文章之前,僅僅是對于一些普通用戶簡單的隨便賦權(quán)就完事了,而這樣的管理工作顯然是不夠的,因此,本文將對postgresql數(shù)據(jù)庫內(nèi)的用戶賦權(quán)和去權(quán)做一個相對完整的總結(jié),并通過示例說明 usage權(quán)限和select權(quán)限的不同。

一,

用戶的權(quán)限有哪些?

SELECT:該權(quán)限用來查詢表或是表上的某些列,或是視圖,序列。
INSERT:該權(quán)限允許對表或是視圖進(jìn)行插入數(shù)據(jù)操作,也可以使用COPY FROM進(jìn)行數(shù)據(jù)的插入。
UPDATE:該權(quán)限允許對表或是或是表上特定的列或是視圖進(jìn)行更新操作。
DELETE:該權(quán)限允許對表或是視圖進(jìn)行刪除數(shù)據(jù)的操作。
TRUNCATE:允許對表進(jìn)行清空操作。
REFERENCES:允許給參照列和被參照列上創(chuàng)建外鍵約束。
TRIGGER:允許在表上創(chuàng)建觸發(fā)器。
CREATE:對于數(shù)據(jù)庫,允許在數(shù)據(jù)庫上創(chuàng)建Schema;對于Schema,允許對Schema上創(chuàng)建數(shù)據(jù)庫對象;對于表空間,允許把表或是索引指定到對應(yīng)的表空間上。
CONNECT:允許用戶連接到指定的數(shù)據(jù)庫上。
TEMPORARY或是TEMP:允許在指定數(shù)據(jù)庫的時候創(chuàng)建臨時表。
EXECUTE:允許執(zhí)行某個函數(shù)。
USAGE:對于程序語言來說,允許使用指定的程序語言創(chuàng)建函數(shù);對于Schema來說,允許查找該Schema下的對象(不包括授權(quán)后的新建對象);對于序列來說,允許使用currval和nextval函數(shù);對于外部封裝器來說,允許使用外部封裝器來創(chuàng)建外部服務(wù)器;對于外部服務(wù)器來說,允許創(chuàng)建外部表。
ALL PRIVILEGES:表示一次性給予可以授予的權(quán)限。

OK,增刪改查也就是select ,update,insert,delete? 和usage應(yīng)該是可以歸于一類的,而select和usage是十分相似的,至少在schema下,兩者是基本雷同的,但需要注意的是,授權(quán)后的新建對象,比如新建表,usage是無權(quán)查詢的,而select顯然是不存在此類問題的。

二,

正確的只讀用戶賦權(quán)

1,

第一種賦權(quán)

usage---使用權(quán)+select查詢權(quán)

先創(chuàng)建相關(guān)schema,名為mytest,相關(guān)role,名為test

test=# \c test
You are now connected to database "test" as user "postgres".
test=# create schema mytest;
CREATE SCHEMA
test=# \du
                                        List of roles
     Role name      |                         Attributes                         | Member of 
--------------------+------------------------------------------------------------+-----------
 drmc               |                                                            | {}
 pg1                | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 pms30              | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 postgres           | Superuser                                                  | {}
 postgres_exporter  |                                                            | {}
 postgres_exporter1 |                                                            | {}
 power_common       |                                                            | {}
 power_tf           |                                                            | {}
 zsk                |                                                            | {}
test=# create user test with password '123456';
CREATE ROLE

postgresql|數(shù)據(jù)庫|角色(用戶)管理工作---授權(quán)和去權(quán)以及usage和select兩種權(quán)限的區(qū)別,postgresql數(shù)據(jù)庫,數(shù)據(jù)庫,postgresql,oracle,經(jīng)驗分享,運(yùn)維

賦權(quán):

test=# grant USAGE on SCHEMA mytest to test;
GRANT
test1=> grant SELECT on ALL tables in schema mytest to test;

測試就不演示了,只是需要注意一點(diǎn),要賦權(quán)兩個,usage和select,兩者缺一不可,也就是說必須是兩個命令!?。。?!

OK,以上是用戶test賦權(quán)select到test數(shù)據(jù)庫下的mytest這個schema,下面為了繼續(xù)測試,刪除test這個用戶。

2,

強(qiáng)制刪除已賦權(quán)過的用戶

OK,刪除的時候報錯了,這就讓人比較無語了,報錯說的是名為test的數(shù)據(jù)庫有5個對象依賴于用戶test,不過還是有解決辦法的

postgres=# drop user test;
2023-08-09 01:15:34.031 CST [14975] ERROR:  role "test" cannot be dropped because some objects depend on it
2023-08-09 01:15:34.031 CST [14975] DETAIL:  5 objects in database test
2023-08-09 01:15:34.031 CST [14975] STATEMENT:  drop user test;
ERROR:  role "test" cannot be dropped because some objects depend on it
DETAIL:  5 objects in database test

強(qiáng)制刪除:

需要reassign和drop owner by以及drop user? 三條命令,缺一不可。

postgres=# \c test
You are now connected to database "test" as user "postgres".
test=# \dn
List of schemas
  Name  | Owner 
--------+-------
 mytest | test
 public | pg1
(2 rows)

test=# REASSIGN OWNED BY test TO postgres;
REASSIGN OWNED
test=# \dn
  List of schemas
  Name  |  Owner   
--------+----------
 mytest | postgres
 public | pg1
(2 rows)
test=# drop owned BY test cascade;
NOTICE:  drop cascades to 4 other objects
DETAIL:  drop cascades to table mytest.dept
drop cascades to table mytest.emp
drop cascades to table mytest.bonus
drop cascades to table mytest.salgrade
DROP OWNED

OK,查詢test這個用戶是否刪除:

可以看到,確實(shí)沒有了,有強(qiáng)迫癥的人士就非常舒服了。

但特別需要注意,該強(qiáng)制刪除用戶因為是級聯(lián)刪除,因此,很大概率會把依賴的schema和table都刪除,所以此方式強(qiáng)制刪除用戶需要提前備份,防止發(fā)生不測

test1=# \du+
                                               List of roles
     Role name      |                         Attributes                         | Member of | Description 
--------------------+------------------------------------------------------------+-----------+-------------
 drmc               |                                                            | {}        | 
 pg1                | Superuser, Create role, Create DB, Replication, Bypass RLS | {}        | 
 pms30              | Superuser, Create role, Create DB, Replication, Bypass RLS | {}        | 
 postgres           | Superuser                                                  | {}        | 
 postgres_exporter  |                                                            | {}        | 
 postgres_exporter1 |                                                            | {}        | 
 power_common       |                                                            | {}        | 
 power_tf           |                                                            | {}        | 
 zsk                |                                                            | {}        | 

3,

第二種賦權(quán)

grant select+ owner

test=# create user test with password '123456';
CREATE ROLE
test=# \c
You are now connected to database "test" as user "postgres".
test=# grant SELECT on ALL tables in schema mytest to test;
GRANT
test=# set search_path to mytest ;
SET
test=# alter schema mytest owner to test;
ALTER SCHEMA

測試:文章來源地址http://www.zghlxwxcb.cn/news/detail-636798.html

test=> \c
You are now connected to database "test" as user "test".

test=> set search_path to mytest ;
SET
test=> \dp
                                  Access privileges
 Schema |   Name   | Type  |     Access privileges     | Column privileges | Policies 
--------+----------+-------+---------------------------+-------------------+----------
 mytest | bonus    | table | postgres=arwdDxt/postgres+|                   | 
        |          |       | test=r/postgres           |                   | 
 mytest | dept     | table | postgres=arwdDxt/postgres+|                   | 
        |          |       | test=r/postgres           |                   | 
 mytest | emp      | table | postgres=arwdDxt/postgres+|                   | 
        |          |       | test=r/postgres           |                   | 
 mytest | salgrade | table | postgres=arwdDxt/postgres+|                   | 
        |          |       | test=r/postgres           |                   | 
(4 rows)

test=> \dn
List of schemas
  Name  | Owner 
--------+-------
 mytest | test
 public | pg1
(2 rows)

test=> set search_path to mytest ;
SET
test=> select * from emp;
 empno | ename  |    job    | mgr  |  hiredate  |   sal   |  comm   | deptno 
-------+--------+-----------+------+------------+---------+---------+--------
  7369 | SMITH  | CLERK     | 7902 | 1980-12-17 |  800.00 |         |     20
  7499 | ALLEN  | SALESMAN  | 7698 | 1981-02-20 | 1600.00 |  300.00 |     30
  7521 | WARD   | SALESMAN  | 7698 | 1981-02-22 | 1250.00 |  500.00 |     30
  7566 | JONES  | MANAGER   | 7839 | 1981-04-02 | 2975.00 |         |     20
  7654 | MARTIN | SALESMAN  | 7698 | 1981-09-28 | 1250.00 | 1400.00 |     30
  7698 | BLAKE  | MANAGER   | 7839 | 1981-05-01 | 2850.00 |         |     30
  7782 | CLARK  | MANAGER   | 7839 | 1981-06-09 | 2450.00 |         |     10
  7788 | SCOTT  | ANALYST   | 7566 | 0087-04-19 | 3000.00 |         |     20
  7839 | KING   | PRESIDENT |      | 1981-11-17 | 5000.00 |         |     10
  7844 | TURNER | SALESMAN  | 7698 | 1981-09-08 | 1500.00 |    0.00 |     30
  7876 | ADAMS  | CLERK     | 7788 | 0087-05-23 | 1100.00 |         |     20
  7900 | JAMES  | CLERK     | 7698 | 1981-12-03 |  950.00 |         |     30
  7902 | FORD   | ANALYST   | 7566 | 1981-12-03 | 3000.00 |         |     20
  7934 | MILLER | CLERK     | 7782 | 1982-01-23 | 1300.00 |         |     10
(14 rows)

到了這里,關(guān)于postgresql|數(shù)據(jù)庫|角色(用戶)管理工作---授權(quán)和去權(quán)以及usage和select兩種權(quán)限的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • PostgreSQL用戶和角色的創(chuàng)建和管理

    PostgreSQL用戶和角色的創(chuàng)建和管理

    在 PostgreSQL 中,用戶和角色是用于對數(shù)據(jù)庫進(jìn)行權(quán)限管理的重要概念。用戶是數(shù)據(jù)庫系統(tǒng)中的實(shí)體,可以登錄數(shù)據(jù)庫并執(zhí)行操作,而角色是一組權(quán)限的集合,可以被授予給多個用戶。本章將詳細(xì)介紹如何創(chuàng)建和管理 PostgreSQL 用戶和角色。 在 PostgreSQL 中,可以使用 CREATE USER 語

    2024年02月04日
    瀏覽(24)
  • 【postgresql 基礎(chǔ)入門】數(shù)據(jù)庫服務(wù)的管理

    【postgresql 基礎(chǔ)入門】數(shù)據(jù)庫服務(wù)的管理

    ? 專欄內(nèi)容 : postgresql內(nèi)核源碼分析 手寫數(shù)據(jù)庫toadb 并發(fā)編程 ? 開源貢獻(xiàn) : toadb開源庫 個人主頁 :我的主頁 管理社區(qū) :開源數(shù)據(jù)庫 座右銘:天行健,君子以自強(qiáng)不息;地勢坤,君子以厚德載物. 初始化集群 數(shù)據(jù)庫服務(wù)管理 postgresql 數(shù)據(jù)庫是一款通用的關(guān)系型數(shù)據(jù),在開

    2024年02月10日
    瀏覽(23)
  • 數(shù)據(jù)庫管理系統(tǒng)PostgreSQL部署安裝完整教程

    數(shù)據(jù)庫管理系統(tǒng)PostgreSQL部署安裝完整教程

    ????????PostgreSQL是一個開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它支持大量的數(shù)據(jù)類型和復(fù)雜的查詢語言,可以用于各種應(yīng)用程序。它是一個高性能的數(shù)據(jù)庫,可以處理大量的數(shù)據(jù),并且具有良好的可擴(kuò)展性和可靠性。 目錄 一.Linux系統(tǒng)安裝PostgresSQL(Centos7) 1.更新yun源 2.安裝Po

    2024年02月09日
    瀏覽(51)
  • SQLServer 報錯:(Microsoft.SqlServer.Smo)用戶、組或角色‘XXX‘ 在當(dāng)前數(shù)據(jù)庫中已存在. 錯誤:15023解決方法

    SQLServer 報錯:(Microsoft.SqlServer.Smo)用戶、組或角色‘XXX‘ 在當(dāng)前數(shù)據(jù)庫中已存在. 錯誤:15023解決方法

    背景: 最近在遷移SQLServer數(shù)據(jù)庫2019時,新建用戶后,做用戶映射時。 SQLServer 報錯:用戶、組或角色\\\'XXX\\\' 在當(dāng)前數(shù)據(jù)庫中已存在. 錯誤:15023. 下面講一下解決的方法。 分析: ? ? 將數(shù)據(jù)庫恢復(fù)到其他服務(wù)器時,數(shù)據(jù)庫中包含一組用戶和權(quán)限,但可能沒有相應(yīng)的登錄或者登錄所

    2024年02月15日
    瀏覽(21)
  • DBeaver數(shù)據(jù)庫管理工具安裝連接PostgreSQL和DM

    DBeaver數(shù)據(jù)庫管理工具安裝連接PostgreSQL和DM

    1. 安裝 下載地址 https://dbeaver.io/download/ 2. 連接PostgreSQL 配置顯示所有數(shù)據(jù)庫 第二個勾選會顯示模板數(shù)據(jù)庫 點(diǎn)擊 測試連接 ,然后下載驅(qū)動 連接成功 3. 連接DM8 3.1 下載驅(qū)動 地址 https://eco.dameng.com/document/dm/zh-cn/app-dev/java_Mybatis_frame.html 下載完成解壓,將需要的 DmJdbcDriver18.jar 放到

    2024年02月16日
    瀏覽(33)
  • 【數(shù)據(jù)庫二】數(shù)據(jù)庫用戶管理與授權(quán)

    【數(shù)據(jù)庫二】數(shù)據(jù)庫用戶管理與授權(quán)

    CHAR和VARCHAR類型類似,但它們保存和檢索的方式不同。它們的最大長度和是否尾部空格被保留等方面也不同,在存儲或檢索過程中不進(jìn)行大小寫轉(zhuǎn)換。 下表顯示了將各種字符串值保存到CHAR(4)和VARCHAR(4)列后的結(jié)果,說明了CHAR和VARCHAR之間的差別: 字節(jié)大小 char無論是否有值,都

    2024年02月09日
    瀏覽(19)
  • 數(shù)據(jù)庫用戶管理

    數(shù)據(jù)庫用戶管理

    1.新建用戶: ‘用戶名’:指定將創(chuàng)建的用戶名. ‘來源地址’:指定新創(chuàng)建的用戶可在哪些主機(jī)上登錄,可使用IP地址、網(wǎng)段、主機(jī)名的形式,本地用戶可用localhost,允許任意主機(jī)登錄,可用通配符% ‘密碼’:若使用明文密碼,直接輸入’密碼’,插入到數(shù)據(jù)庫時由Mysql自

    2024年02月16日
    瀏覽(20)
  • PostgreSQL數(shù)據(jù)庫動態(tài)共享內(nèi)存管理器——Dynamic shared memory areas

    PostgreSQL數(shù)據(jù)庫動態(tài)共享內(nèi)存管理器——Dynamic shared memory areas

    dsm.c提供的功能允許創(chuàng)建后端進(jìn)程間共享的共享內(nèi)存段。DSA利用多個DSM段提供共享內(nèi)存heap;DSA可以利用已經(jīng)存在的共享內(nèi)存(DSM段)也可以創(chuàng)建額外的DSM段。和系統(tǒng)heap使用指針不同的是,DSA提供偽指針,可以轉(zhuǎn)換為backend-local指針,但是該偽指針可以在后端進(jìn)程之間共享,可

    2024年02月15日
    瀏覽(30)
  • 新增PostgreSQL數(shù)據(jù)庫管理功能,1Panel開源面板v1.9.3發(fā)布

    新增PostgreSQL數(shù)據(jù)庫管理功能,1Panel開源面板v1.9.3發(fā)布

    2024年1月15日,現(xiàn)代化、開源的Linux服務(wù)器運(yùn)維管理面板1Panel正式發(fā)布v1.9.3版本。 在這一版本中,1Panel新增了PostgreSQL數(shù)據(jù)庫管理功能,并且支持設(shè)置PHP運(yùn)行環(huán)境擴(kuò)展模版。此外,我們進(jìn)行了30多項功能更新和問題修復(fù)。1Panel應(yīng)用商店新增了3款應(yīng)用,并且更新了22款應(yīng)用。感謝社

    2024年01月18日
    瀏覽(61)
  • 【數(shù)據(jù)庫 - 用戶權(quán)限管理】(簡略)

    【數(shù)據(jù)庫 - 用戶權(quán)限管理】(簡略)

    目錄 一、概述 二、用戶權(quán)限類型 1.ALL PRIVILEGES 2.CREATE 3.DROP 4.SELECT 5.INSERT 6.UPDATE 7.DELETE 8.INDEX 9.ALTER 10.CREATE VIEW和CREATE ROUTINE 11.SHUTDOWN 12GRANT OPTION 三、語句格式 1.用戶賦權(quán) 2.權(quán)限刪除 3.用戶刪除 數(shù)據(jù)庫用戶權(quán)限管理是數(shù)據(jù)庫系統(tǒng)中非常重要的一個方面,它用于控制不同用戶訪問

    2024年02月15日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包