主頁(yè) > 知識(shí)庫(kù) > pgsql之create user與create role的區(qū)別介紹

pgsql之create user與create role的區(qū)別介紹

熱門標(biāo)簽:移動(dòng)外呼系統(tǒng)模擬題 江蘇400電話辦理官方 廣州電銷機(jī)器人公司招聘 地圖標(biāo)注要花多少錢 濟(jì)南外呼網(wǎng)絡(luò)電話線路 電話機(jī)器人怎么換人工座席 400電話申請(qǐng)客服 電銷機(jī)器人能補(bǔ)救房產(chǎn)中介嗎 天津開發(fā)區(qū)地圖標(biāo)注app

create user的語(yǔ)法

CREATE USER name [ [ WITH ] option [ ... ] ] 
where option can be: 
  SUPERUSER | NOSUPERUSER
 | CREATEDB | NOCREATEDB
 | CREATEROLE | NOCREATEROLE
 | CREATEUSER | NOCREATEUSER
 | INHERIT | NOINHERIT
 | LOGIN | NOLOGIN
 | REPLICATION | NOREPLICATION
 | BYPASSRLS | NOBYPASSRLS
 | CONNECTION LIMIT connlimit
 | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
 | VALID UNTIL 'timestamp'
 | IN ROLE role_name [, ...]
 | IN GROUP role_name [, ...]
 | ROLE role_name [, ...]
 | ADMIN role_name [, ...]
 | USER role_name [, ...]
 | SYSID uid

例如:

create user test with replication createrole createdb login password 'test123';

with 后面的部分描述的是“系統(tǒng)權(quán)限”或者數(shù)據(jù)庫(kù)用戶的屬性。使用\du命令查看,則對(duì)應(yīng)著List of roles Attributes列。如圖:

create user與create role的區(qū)別

官網(wǎng)上的描述是:

CREATE USER is now an alias for CREATE ROLE. The only difference is that when the command is spelled CREATE USER, LOGIN is assumed by default, whereas NOLOGIN is assumed when the command is spelled CREATE ROLE.

也就是說create user 默認(rèn)有l(wèi)ogin權(quán)限,而create role沒有。

補(bǔ)充:關(guān)于PostgreSQL數(shù)據(jù)庫(kù)中的表空間,user,role,權(quán)限,模式(schema)的概念.

表空間:

在PG中,表空間是文件系統(tǒng)中位置的一個(gè)鏈接,也就是一個(gè)目錄.

表空間是一個(gè)可以保存所有其他對(duì)象的容器,如表,索引等.

在很多情況下,這樣的功能是很有用的.也就是說:在一個(gè)指定的位置保存數(shù)據(jù),而不是在默認(rèn)的位置.

存在如下一個(gè)場(chǎng)景:當(dāng)我們用完初始化數(shù)據(jù)庫(kù)集群所使用的分區(qū)上的空間時(shí),就可以使用表空間.

另外一個(gè)適用的場(chǎng)景是:處于性能考慮,移動(dòng)具體對(duì)象到速度不同的磁盤上.

可以在一個(gè)比較快磁盤的表空間上創(chuàng)建一組頻繁訪問的對(duì)象.

或者是,在比較快的磁盤上使用OLTP業(yè)務(wù),在比較慢的磁盤上運(yùn)行OLAP業(yè)務(wù).

當(dāng)我們初始化一個(gè)集群的時(shí)候,可以得到兩個(gè)默認(rèn)表空間,

一個(gè)表空間成為pg_default,所有用戶創(chuàng)建的并且未指定一個(gè)表空間的對(duì)象講在pg_default表空間內(nèi)被創(chuàng)建.

pg_default表空間的位置PGDATA下的基礎(chǔ)目錄.

另一個(gè)表空間是pg_global,它持有集群(cluster)中所有數(shù)據(jù)庫(kù)共享的系統(tǒng)表.

模式:

模式(schema):我們?cè)趐g數(shù)據(jù)庫(kù)中創(chuàng)建的任何對(duì)象(表,索引,視圖等)都會(huì)在一個(gè)模式下被創(chuàng)建.

當(dāng)創(chuàng)建對(duì)象時(shí),如果未指定模式,這些對(duì)象將會(huì)在默認(rèn)的模式下被創(chuàng)建.這個(gè)模式叫做public.

一個(gè)例外情況是另一個(gè)模式首先出現(xiàn)在search_path中.

角色和權(quán)限

在pg中,一個(gè)角色幾乎與一個(gè)用戶相同.因?yàn)橐粋€(gè)角色可以是用戶,也可以是一個(gè)用戶組.

create user命令等同于create role,除了一點(diǎn):create user有隱含的login權(quán)限.而create role不會(huì)有該權(quán)限.

每個(gè)角色是整個(gè)cluster所共享的,角色不是某個(gè)數(shù)據(jù)庫(kù)特有的.

為了在數(shù)據(jù)庫(kù)實(shí)現(xiàn)有效操作,用戶必須獲得相關(guān)權(quán)限.

在pg中,權(quán)限可以針對(duì)數(shù)據(jù)庫(kù)級(jí)別設(shè)定,也可以針對(duì)單個(gè)對(duì)象級(jí)別(表,視圖,函數(shù)等)進(jìn)行設(shè)定.

權(quán)限有select,delete,update,insert,execute

還有創(chuàng)建對(duì)象的權(quán)限,刪除對(duì)象的權(quán)限

在pg中,可以把一個(gè)特定權(quán)限給一個(gè)user

也可以把一個(gè)特定權(quán)限給一個(gè)role

role的一個(gè)重要特點(diǎn)就是可以被繼承.

舉例:

我們可以創(chuàng)建一個(gè)report_user角色,然后在一組table中將select權(quán)限授予這個(gè)角色.

然后,為從事報(bào)告工作的每個(gè)人各自創(chuàng)建user,并將report_user 角色授權(quán)給這些user.

當(dāng)其中一個(gè)user離開部門時(shí),我們只要?jiǎng)h除該用戶所創(chuàng)建的登錄即可.

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • PGSQL 實(shí)現(xiàn)查詢今天,昨天的數(shù)據(jù),一個(gè)月之內(nèi)的數(shù)據(jù)
  • pgsql 變量賦值方法及注意事項(xiàng)
  • pgsql 實(shí)現(xiàn)分頁(yè)查詢方式
  • Postgresql 存儲(chǔ)過程(plpgsql)兩層for循環(huán)的操作
  • pgsql之pg_stat_replication的使用詳解
  • pgsql 如何刪除仍有活動(dòng)鏈接的數(shù)據(jù)庫(kù)
  • pgsql 解決包含有單引號(hào)的字符串操作

標(biāo)簽:海西 昭通 寶雞 辛集 溫州 榆林 杭州 濮陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《pgsql之create user與create role的區(qū)別介紹》,本文關(guān)鍵詞  pgsql,之,create,user,與,role,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《pgsql之create user與create role的區(qū)別介紹》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于pgsql之create user與create role的區(qū)別介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章