1.登陸sql
psql -U pname -d database // pname 表示postgres的登陸用戶名,database 則表示要訪問的數據庫 數據庫
2.查看全部的數據庫服務器
\l函數
3.查看全部的表(這裏的紅色部分根據你要查看的數據庫的名字來改變)post
\d database spa
4.查看錶的結構(這裏的紅色部分根據你要查看的表的名字來改變)orm
\d tablename對象
5.切換數據庫索引
\c databaseit
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:表示一次性給予能夠授予的權限。