Linux上POSTGRES操作


登錄
$ psql (連接數據庫,默認用戶和數據庫都是postgres)
$ psql -U <user> -d <dbname> 

 

數據庫操作

// 列舉數據庫,相當於show databases

$ \l

 // 切換數據庫,相當與use dbname

$ \c <dbname>

 // 列舉表,相當與show tables  

$ \dt

 // 查看表結構,相當於desc

$ \d tblname

// 創建數據庫

$ create database <dbname>

 // 刪除數據庫

$ drop database <dbname>

// 創建表

$ create table ([字段名1] [類型1] ;,[字段名2] [類型2],......<,primary key (字段名m,字段名n,...)>;); 

 // 在表中插入數據

$ insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);

 // 備份數據庫

$ pg_dump -U postgres -f /tmp/postgres.sql postgres (導出postgres數據庫保存為postgres.sql)
$ pg_dump -U postgres -f /tmp/postgres.sql -t test01 postgres (導出postgres數據庫中表test01的數據)
$ pg_dump -U postgres -F t -f /tmp/postgres.tar postgres (導出postgres數據庫以tar形式壓縮保存為postgres.tar)

 // 恢復數據庫

$ psql -U postgres -f /tmp/postgres.sql bk01 (恢復postgres.sql數據到bk01數據庫)
$ pg_restore -U postgres -d bk01 /tmp/postgres.tar  (恢復postgres.tar數據到bk01數據庫)

 

用戶操作

// 切換用戶

$ \c - <username>

 // 創建用戶並設置密碼

$ CREATE USER 'username' WITH PASSWORD 'password';
$ CREATE ROLE 'username' CREATEDB PASSWORD 'password' LOGIN; (創建角色並授予創建數據庫及密碼登錄的屬性)

 // 修改用戶密碼

$ ALTER USER 'username' WITH PASSWORD 'password';

 // 數據庫授權

$ GRANT ALL PRIVILEGES ON DATABASE 'dbname' TO 'username';

 // 修改用戶權限

$ ALTER ROLE 'username' createdb ; (授予創建數據庫權限)
$ ALTER ROLE 'username' superuser ;(授予超級管理員權限)

 // 角色屬性

login

login 只有具有 LOGIN 屬性的角色可以用做數據庫連接的初始角色名。

superuser 

數據庫超級用戶 

createdb 

創建數據庫權限 

createrole

允許其創建或刪除其他普通的用戶角色(超級用戶除外) 

replication

 做流復制的時候用到的一個用戶屬性,一般單獨設定。 

password

在登錄時要求指定密碼時才會起作用,比如md5或者password模式,跟客戶端的連接認證方式有關 

inherit

用戶組對組員的一個繼承標志,成員可以繼承用戶組的權限特性 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM