1.登錄
psql -U pname -d database // pname 表示postgres的登錄用戶名,database 則表示要訪問的數據庫
2.查看所有的數據庫
\l
3.查看所有的表(這里的紅色部分根據你要查看的數據庫的名字來改變)
\d database
4.查看表的結構(這里的紅色部分根據你要查看的表的名字來改變)
\d tablename
5.切換數據庫
\c database
6.退出登錄
\q
7. 創建database
CREATE DATEBASE database_name;
8. 創建schema
CREATE SCHEMA schema_name;
9.查看數據庫下面所有的schema
select * from information_schema.schemata;
10.查看一個schema下面所有的表
select * from information_schema.tables where table_schema = 'schema_name';
11.創建角色
CREATE ROLE role_name [...];
[...]為可多選角色屬性參數,參數可分別為:
- 登陸(login):具有login屬性的角色可以連接數據庫,一個帶有login屬性的角色可以等同於“數據庫用戶”,因為數據庫用戶創建的時候默認自帶login屬性.
- 超級用戶(superuser):超級用戶擁有至高無上的權限,但是這個權限分配的時候,一定要小心,想要創建超級用戶,必須使用帶超級用戶的角色去創建帶“超級用戶”的角色 .
- 創建數據庫(createdb):創建數據庫屬性,顧名思義就是擁有“創建數據庫”屬性的角色可以創建數據庫,對於超級用戶的角色來說,自身可以創建數據庫,不用帶“創建數據庫”屬性 .
- 創建角色(createrole):帶有“創建角色”屬性的角色可以創建其他角色。一般帶有“創建角色”屬性的角色還可以刪除和更改其他角色(刪除和更改只限於普通用戶)
- 口令(password):只有在客戶認證方法要求與數據庫建立連接必須使用口令的時候, 口令才比較重要.
在創建好角色后,如果需要修改的話,可以使用alter role語句修改
12.權限設置
將名字為schema_name的schema的所有權限給予role_name角色;
grant all on schema schema_name to role_name;
將名字為schema_name的schema下面所有的表的操作權限給予role_name角色;
grant all on all tables in schema schema_name to role_name;
如果你不准備將所有的權限都給予role_name角色,可以給予部分的權限,每個權限值之間以逗號分隔,而權限的明細如下:
- SELECT:該權限用來查詢表或是表上的某些列,或是視圖,序列。
- INSERT:該權限允許對表或是視圖進行插入數據操作,也可以使用COPY FROM進行數據的插入。
- UPDATE:該權限允許對表或是或是表上特定的列或是視圖進行更新操作。
- DELETE:該權限允許對表或是視圖進行刪除數據的操作。
- TRUNCATE:允許對表進行清空操作。
- REFERENCES:允許給參照列和被參照列上創建外鍵約束。
- TRIGGER:允許在表上創建觸發器。
- CREATE:對於數據庫,允許在數據庫上創建Schema;對於Schema,允許對Schema上創建數據庫對象;對於表空間,允許把表或是索引指定到對應的表空間上(在Oracle中,我們是用quota子句或是unlimited tablespace權限來控制)。該權限與Oracle上的CREATE類權限完全不同了。
- CONNECT:允許用戶連接到指定的數據庫上。
- TEMPORARY或是TEMP:允許在指定數據庫的時候創建臨時表。
- EXECUTE:允許執行某個函數。
- USAGE:對於程序語言來說,允許使用指定的程序語言創建函數;對於Schema來說,允許查找該Schema下的對象;對於序列來說,允許使用currval和nextval函數;對於外部封裝器來說,允許使用外部封裝器來創建外部服務器;對於外部服務器來說,允許創建外部表。
- ALL PRIVILEGES:表示一次性給予可以授予的權限。
還會不斷擴充......