程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> PostgrepSQL一些常用操作

PostgrepSQL一些常用操作

編輯:PHP基礎知識
 

$ ./createuser -P -d -a -e admin
Enter password for new role:
Enter it again:
CREATE ROLE admin PASSWORD ‘md5adac7a79de00846615c9e82e44271065′ SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;
$ ./psql
psql (9.2.1, server 8.2.17)
WARNING: psql version 9.2, server version 8.2.
Some psql features might not work.
Type “help” for help.

pgsql=# \du
List of roles
Role name | Attributes | Member of
———–+———————————–+———–
admin | Superuser, Create role, Create DB |
pgsql | Superuser, Create role, Create DB |

pgsql=# select * from pg_roles;

用戶管理:
添加用戶:
命令:createuser [-a] [-A] [-d] [-D] [-e] [-P] [-h 主機名] [-p port] 用戶名
參數說明:
[-a]:允許創建其他用戶,相當於創建一個超級用戶;
[-A]:不允許此用戶創建其他用戶;
[-d]:允許此用戶創建數據庫;
[-D]:不允許此用戶創建數據庫;
[-e]:將執行過程顯示到Shell上;
[-P]:創建用戶時,同時設置密碼;
[-h 主機名]:為某個主機上的Postgres創建用戶;
[-p port]:與-h參數一同使用,指定主機的端口。
事實上,createuser只是對CREATE USER的封裝。
A.不帶參數的創建用戶
createuser testuser
Shall the new user be allowed to create databases? (y/n) n ——–是否可以創建數據庫:否
Shall the new user be allowed to create more new users? (y/n) n ———是否可以創建新用戶:否
CREATE USER
注:不帶數創建用戶時,Postgres會詢問此用戶的權限,上面的例子創建了一個普通用戶; 這等於CREATE USER testuser NOCREATEDB NOCREATEUSER;
B.為指定的主機和端口上創建用戶
createuser -h 192.168.1.5 -p 5000 -D -A -e testuser
CREATE USER
注:這個命令為主機192.168.1.5的5000端口創建用戶testuser, 此用戶不可以創建數據庫和其他用戶。
C.創建超級用戶
createuser -P -d -a -e testuser
Enter password for new user: testuser
Enter it again: testuser
CREATE USER
注:這個命令在本地創建一個超級用戶(-a),可以創建數據庫(-d), 同時要求設置密碼。 這等於CREATE USER testuser PASSWORD ‘testuser’ CREATEDB CREATEUSER;
刪除用戶:
命令:dropuser [-i] [-h] [-p] [-e] 用戶名
參數說明:
[ -i]:刪除用戶前,要求確認;
[-h 主機名]:刪除某個主機上的Postgres用戶;
[-p port]:與-h參數一同使用,指定主機的端口;
[-e]:將執行過程顯示到Shell上。
事實上,dropuser只是對DROP USER的封裝。
A.刪除本地的Postgres用戶
dropuser testuser
DROP USER
B.刪除遠程Postgres服務器上的用戶
dropuser -h192.168.1.5 -p 5000 -i -e testuser
User “testuser” and any owned databases will be permanently deleted.
Are you sure? (y/n) y
DROP USER
注:此命令刪除主機192.168.1.5(-h)的5000端口(-p)的用戶testuser,並且需要確認(-i); 這等於DROP USER “testuser”;
創建刪除數據庫:
A.創建數據庫
創建我的第一個數據庫sk
postgres是支持SQL標准最高的關系型數據庫管理系統,當然,它支持CREATE DATABASE命令創建數據庫,在此基礎上,還對此命令做了擴展,
增加了許多屬性設置。
比如owner、template、ecoding、tablespace等。
那麼,利用CREATE DATABASE創建sk數據庫語句如下:
CREATE DATABASE sk ENCODING ‘LATIN1′ TEMPLATE template0 OWNER sk TABLESPACE skspace;

另外,postgres還提供的自己的方言來創建數據庫createdb,同樣支持多個屬性設置。
比如–tablespace、–encoding、–owner、–template等。
那麼,利用createdb創建sk數據庫語句如下:
createdb sk –encoding LATIN1 –template template0 –owner sk –tablespace skspace;

事實上,createdb只是給create database命令做的一個外殼,目的是提高創建語句的便利性。
但作為我個人,還是喜歡使用CREATE DATABASE 命令來創建數據庫。
B.刪除數據庫
刪除我剛才創建的數據庫sk:
dropdb sk
DROP DATABASE sk

1. 創建數據庫
createdb -h ip -U user dbname. (ip 為目標機,本機可不要-h參數; user是登錄數據庫的角色)
2. 備份數據庫
pg_dump -h ip -U user -E utf-8 dbname > mysql.bak(mysql.bak是備份文件名字)
3. 恢復數據庫
psql -h ip -U user -d dbname -f mysql.bak
這裡只是基本的參數,詳細參數信息可用–help查看。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved