postgres經常使用命令

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 [...];

[...]爲可多選角色屬性參數,參數可分別爲:

  1. 登錄(login):具備login屬性的角色能夠鏈接數據庫,一個帶有login屬性的角色能夠等同於「數據庫用戶」,由於數據庫用戶建立的時候默認自帶login屬性.
  2. 超級用戶(superuser):超級用戶擁有至高無上的權限,可是這個權限分配的時候,必定要當心,想要建立超級用戶,必須使用帶超級用戶的角色去建立帶「超級用戶」的角色 .
  3. 建立數據庫(createdb):建立數據庫屬性,顧名思義就是擁有「建立數據庫」屬性的角色能夠建立數據庫,對於超級用戶的角色來講,自身能夠建立數據庫,不用帶「建立數據庫」屬性 .
  4. 建立角色(createrole):帶有「建立角色」屬性的角色能夠建立其餘角色。通常帶有「建立角色」屬性的角色還能夠刪除和更改其餘角色(刪除和更改只限於普通用戶) 
  5. 口令(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:表示一次性給予能夠授予的權限。
相關文章
相關標籤/搜索