通過實驗理解PG邏輯結構:1 使用者(角色)
在PostgreSQL中,角色與使用者是沒有區別的,一個使用者也是一個角色。
使用者和角色在整個資料庫例項中都是全域性的,在同一個例項中的不同資料庫中,看到的也是相同的。
## 使用pgAdmin工具
## 展開
在初始化資料庫系統時,有一個預定義的超級使用者:postgres;一般來說,初始化資料庫使用的作業系統使用者:postgres
USER 與 ROLE 的區別:
CREATE ROLE name [[with] option [...]] 建立的角色預設沒有 LOGIN 許可權
CREATE USER name [[with] option [...]] 建立的使用者預設有 LOGIN 許可權,除了這點,與 CREATE ROLE 完全相同。
# 檢視 create user 語法幫助
postgres=#
\h create user
Command: CREATE USER
Description: define a new database role
Syntax:
CREATE USER name [ [ WITH ] option [ ... ] ]
where option can be:
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| REPLICATION | NOREPLICATION
| BYPASSRLS | NOBYPASSRLS
| CONNECTION LIMIT connlimit
| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
| VALID UNTIL 'timestamp'
| IN ROLE role_name [, ...]
| IN GROUP role_name [, ...]
| ROLE role_name [, ...]
| ADMIN role_name [, ...]
| USER role_name [, ...]
| SYSID uid
URL:
# 建立使用者 sys ,密碼為 sys ,且具有superuser、createdb、createrole 許可權
postgres=# create user sys with password 'sys' superuser createdb createrole;
CREATE ROLE
#建立普通使用者 scott ,密碼為 123
postgres=# create user scott with password '123';
CREATE ROLE
# 檢視使用者
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
scott | | {}
sys | Superuser, Create role, Create DB | {}
# 檢視使用者:使用系統檢視 pg_user
postgres=# select usename,usesysid,usecreatedb,usesuper from pg_user order by 1;
usename | usesysid | usecreatedb | usesuper
----------+----------+-------------+----------
postgres | 10 | t | t
scott | 16386 | f | f
sys | 16385 | t | t
(3 rows)
# 修改密碼 with 可省略
postgres=# alter user scott with password 'tiger';
ALTER ROLE
或
postgres=# \password scott
Enter new password:
Enter it again:
# 除了預設的超級使用者postgres,其他使用者連線庫,必須加 -d postgres
[postgres@pgdb1 ~]$ psql -h pgdb1 -p 5432 -U scott
Password for user scott:
psql: error: FATAL: database "scott" does not exist
##
[postgres@pgdb1 ~]$ psql -U sys
psql: error: FATAL: database "sys" does not exist
##
[postgres@pgdb1 ~]$ psql -U postgres
psql (12.8)
Type "help" for help.
# 建立密碼有效期的使用者
postgres=# create user user_10day password '123'
valid until '2022-03-05';
CREATE ROLE
postgres=# \du
List of roles
Role name | Attributes | Member of
------------+------------------------------------------------------------+-----------
hr | | {}
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
scott | Cannot login | {}
sys | Superuser, Create role, Create DB | {}
user_10day | Password valid until 2022-03-05 00:00:00+08 | {}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22661144/viewspace-2864648/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL:邏輯結構SQL
- oracle 邏輯結構Oracle
- 工作284:理解繫結邏輯
- PostgreSQL邏輯備份pg_dump使用及其原理解析SQL
- 3:Oracle體系結構(邏輯結構)Oracle
- Oracle OCP(41):邏輯結構Oracle
- Blazor入門100天 : 身份驗證和授權 (2) - 角色/元件/特性/過程邏輯Blazor元件
- 資料結構實驗1資料結構
- 物理結構和邏輯結構更通俗解釋
- PostgreSQL,SQLServer邏輯增量(通過邏輯標記update,delete)同步到Greenplum,PostgreSQLSQLServerdelete
- 資料結構知識點--儲存結構與邏輯結構資料結構
- HBase學習之Hbase的邏輯結構和物理結構
- MySQL提升筆記(1):MySQL邏輯架構MySql筆記架構
- 架構-穩定性建設邏輯問題實戰總結架構
- 理解ProcessFunction的Timer邏輯Function
- 資料結構實驗課五-1資料結構
- 檔案的邏輯結構、檔案目錄
- 通過OpenGL理解前端渲染原理(1)前端
- MySQL調優篇 | 邏輯架構解讀(1)MySql架構
- 理解PG的xmin和xmax的幾個小實驗
- 【PG體系結構】PG體系結構簡單說明
- 【Golang】Go 通過結構(struct) 實現介面(interface)GolangStruct
- 實驗11-使用keras完成邏輯迴歸Keras邏輯迴歸
- oracle邏輯讀過程Oracle
- Vue原始碼探究-資料繫結邏輯架構Vue原始碼架構
- MIT實驗警示:人類或需要人工智慧輔助才能理解複雜邏輯MIT人工智慧
- 資料結構--單連結串列(通過陣列實現)資料結構陣列
- 《Kafka實戰》之架構和設計邏輯Kafka架構
- Verilog 邏輯綜合過程
- 一次簡單易懂的多型重構實踐,讓你理解條件邏輯多型
- Go快速入門 03 | 控制結構:if、for、switch 邏輯語句Go
- 數字邏輯實踐6-> 從數字邏輯到計算機組成 | 邏輯元件總結與注意事項計算機元件
- 透過資料結構實現簡易通訊錄資料結構
- PostgreSQL技術大講堂 - Part 6:PG使用者與角色管理SQL
- 從巢狀結構中取值時如何編寫兜底邏輯巢狀
- 通過有序線性結構構造AVL樹
- 解析jwt實現邏輯JWT
- 【MM系列】SAP庫齡報表邏輯理解