我們使用Postgresql資料庫的時候,默認都是用postgres用戶進行數據操作。但是有時為了數據安全,我們會另外建一些賬號給相關的工作人員使用。那麼Postgresql資料庫中如何新建登錄用戶呢?下面我給大家分享一下。
工具/材料
pgAdmin4
- 01
首先打開Postgresql的管理工具pgAdmin4,接著雙擊伺服器名稱,如下圖所示
- 02
在彈出的Connect to Server界面中輸入postgres用戶的密碼,然後點擊OK按鈕,如下圖所示
- 03
進入到資料庫以後右鍵單擊"登錄/組角色"選項,選擇Create下面的Login/Group Role選項,如下圖所示
- 04
接下來會彈出創建登錄用戶的界面,我們先給用戶起一個名字,盡量是英文,如下圖所示
- 05
然後切換到Definition頁卡,給登錄用戶設置一個登錄密碼,如下圖所示,注意Connection limit要設置為-1
- 06
接著切換到Privileges界面,這里需要給登錄用戶設置一下操作許可權,大家可以根據自己的需要設置即可,如下圖所示
- 07
接下來切換到Membership頁卡,給登錄用戶設置一個角色,這里我直接把管理員的角色給它了,如下圖所示
- 08
上述設置完畢以後回到資料庫主界面,我們就可以看到"登錄/組角色"下面就已經有我們新建的登錄用戶了,如下圖所示
- 09
最後我們斷開當前的連接,用新建的用戶進行登錄,如果登錄正常的話則代表一切設置成功,如下圖所示
Ⅱ postgresql如何備份資料庫
postgresql中可以使用pg_mp來備份資料庫。pg_mp是用於備份PostgreSQL資料庫的工具。它可以在資料庫正在使用的時候進行完整一致的備份,並不阻塞其它用戶對資料庫的訪問。
用法:
pg_mp [選項]... [資料庫名字]
一般選項:
-f, --file=FILENAME output file or directory name
-F, --format=c|d|t|p output file format (custom, directory, tar, plain text)
-v, --verbose 詳細模式
-Z, --compress=0-9 被壓縮格式的壓縮級別
--lock-wait-timeout=TIMEOUT 在等待表鎖超時後操作失敗
--help 顯示此幫助信息, 然後退出
--versoin 輸出版本信息, 然後退出
示例:
備份資料庫,指令如下:
pg_mp -h 164.82.233.54 -U postgres databasename > C:databasename.bak
開始-運行-cmd 彈出dos控制台;然後 在控制台里,進入PostgreSQL安裝目錄bin下:
cd C:Program FilesPostgreSQL9.0bin
最後執行備份指令:
pg_mp -h 164.82.233.54 -U postgres databasename > C:databasename.bak
指令解釋:
pg_mp 是備份資料庫指令,164.82.233.54是資料庫的ip地址(必須保證資料庫允許外部訪問的許可權哦~),當然本地的資料庫ip寫 localhost;
postgres 是資料庫的用戶名;databasename 是資料庫名。
> 意思是導出到C:databasename.bak文件里,如果沒有寫路徑,單單寫databasename.bak文件名,那麼備份文件會保存在C: Program FilesPostgreSQL9.0bin 文件夾里。
推薦學習《Python教程》。
Ⅲ 怎麼在windows上連接postgres
1、windows下postgresql的安裝
我下載的為xxx9.2.exe一路默認安裝即可。安裝位置為C:\Program Files\PostgreSQL。
安裝完畢後,在dos下執行命令
>net user
列出當前系統用戶名稱。我的用戶名為Administrator。
>psql –U Administrator –d postgres
該命令表示通過資料庫用戶Administrator連接資料庫postgres。
l 若顯示psql不是內部或外部命令,則說明postgresql的bin文件路徑沒添加到windows系統中,右擊「我的電腦」->」屬性」->」高級」->」環境變數」->」Administrator」的用戶變數,選中「PATH」,點擊編輯,將」C:\Program Files\PostgreSQL\9.2\bin」添加進去,注意與前面的路徑用」;」隔開。電腦重啟生效。
l 若顯示角色Administrator不存在,則必須在postgresql資料庫中添加該用戶才能使其可以登錄。
在postgresql中
查詢系統用戶
postgres=#select* from pg_user;
查詢系統中的資料庫
postgres=#select* from pg_database;
說明一下:「template1」是Postgresql在初始化時自動創建的測試資料庫。
創建postgresql資料庫Administrator用戶
方式1
在PostgreSQL中創建用戶postgreSQL用戶Administrator
用SQL Shell(psql)通過用戶postgres登錄PostgreSQL,創建用戶Administrator,
postgres=#create user 「Administrator」;
方式2
通過windows下dos創建postgresql用戶Administrator
將PostgreSQL文件夾bin路徑添加到系統環境中後重啟生效.
通過windows下dos創建postgresql用戶是區分大小寫的。
配置客戶機訪問
為了配置遠程主機和用戶可以連接到PostgreSQL服務,你需要pg_hba.conf文件。文件包含大量注釋記錄用於遠程訪問的選項。在我們的安裝示例中,我們允許區域網中任何主機的任何用戶訪問伺服器上的資料庫。為了達到這個目的,我們添加以下的一行記錄到文件尾:
host all all 192.168.0.0/16 trust
這意味著所有IP地址由192.168開始的計算機可以訪問所有的資料庫。最簡單的使配置生效的方法就是重啟伺服器。
在dos下操作,通過createuser –Uolser –P newuser來創建。
比如我們想創建postgresql資料庫用戶Administrator。
>createuser –U postgre –P Administrator
這樣創建的資料庫用戶Administrator沒有創建資料庫的權利,可以通過pgAdmin III登錄進行查看。
若使其可以創建資料庫可以參照下面內容進行設置:
>createuser –U postgre –s Administrator
這樣具有創建資料庫能力。
createuser的用法可以通過在dos中輸入createuser –help查看。
MicrosoftWindows XP [版本 5.1.2600]
(C)版權所有 1985-2001 Microsoft Corp.
C:\Documentsand Settings\Administrator>createuser --help
createuser創建一個新的 PostgreSQL 用戶.
使用方法:
createuser [選項]... [用戶名]
選項:
-c, --connection-limit=N 角色的連接限制(預設: 沒有限制)
-d, --createdb 此角色可以創建新資料庫
-D, --no-createdb 此角色不可以創建新資料庫(默認)
-e, --echo 顯示發送到服務端的命令
-E, --encrypted 口令加密存儲
-i, --inherit 角色能夠繼承它所屬角色的許可權
(這是預設情況)
-I, --no-inherit 角色不繼承許可權
-l, --login 角色能夠登錄(這是預設情況)
-L, --no-login 角色不能登錄
-N, --unencrypted 口令不加密存儲
-P, --pwprompt 給新角色指定口令
-r, --createrole 這個角色可以創建新的角色
-R, --no-createrole 這個角色沒有創建其它角色的許可權(默認)
-s, --superuser 角色將是超級用戶
-S, --no-superuser 角色不能是超級用戶(默認)
-V, --version 輸出版本信息, 然後退出
--interactive 提示缺少角色名及其屬性
而不是使用默認值
--replication 角色能啟動復制
--no-replication 角色不能啟動復制
-?, --help 顯示此幫助, 然後退出
聯接選項:
-h, --host=HOSTNAM 資料庫伺服器所在機器的主機名或套接字目錄
-p, --port=PORT 資料庫伺服器埠號
-U, --username=USERNAME 聯接用戶 (不是要創建的用戶名)
-w, -no-password 永遠不提示輸入口令
-W, --password 強制提示輸入口令
臭蟲報告至<[email protected]>.
C:\Documentsand Settings\Administrator>
方式3
在C:\Program Files\PostgreSQL\9.2\bin文件夾下有可執行文件createuser.exe,我雙擊後,該文件執行一閃就關閉,只好在dos中輸入cmd打開窗口,將該文件拖入窗口中,在輸入「 –U postgres –P Adiminisrator」然後回車,如下圖所示,即可創建資料庫用戶Administrator。但此時該用戶不具有創建database的能力,可以通過pgAdmin III查看。
psql的用法可以通過在dos下輸入psql –help查看,如下圖所示。
MicrosoftWindows XP [版本 5.1.2600]
(C) 版權所有1985-2001 Microsoft Corp.
C:\Documentsand Settings\Administrator>psql --help
psql是PostgreSQL 的互動式客戶端工具。
使用方法:
psql [選項]... [資料庫名稱 [用戶名稱]]
通用選項:
-c,--command=命令 執行單一命令(SQL或內部指令)然後結束
-d, --dbname=資料庫名稱 指定要連接的資料庫 (預設:"Administrator")
-f, --file=文件名 從文件中執行命令然後退出
-l, --list 列出所有可用的資料庫,然後退出
-v, --set=, --variable=名稱=值
為psql變數(名稱)設定值
-V, --version 輸出版本信息, 然後退出
-X, --no-psqlrc 不讀取啟動文檔(~/.psqlrc)
-1 ("one"), --single-transaction
作為一個單一事務來執行命令文件
-?, --help 顯示此幫助, 然後退出
輸入和輸出選項:
-a, --echo-all 顯示所有來自於腳本的輸入
-e, --echo-queries 顯示發送給伺服器的命令
-E, --echo-hidden 顯示內部命令產生的查詢
-L, --log-file=文件名 將會話日誌寫入文件
-n, --no-readline 禁用增強命令行編輯功能(readline)
-o, --output=FILENAME 將查詢結果寫入文件(或 |管道)
-q, --quiet 以沉默模式運行(不顯示消息,只有查詢結果)
-s, --single-step 單步模式 (確認每個查詢)
-S, --single-line 單行模式 (一行就是一條 SQL 命令)
輸出格式選項 :
-A, --no-align 使用非對齊表格輸出模式
-F, --field-separator=字元串
設欄位分隔符(預設:"|")
-H, --html HTML 表格輸出模式
-P, --pset=變數[=參數] 設置將變數列印到參數的選項(查閱 \pset 命令)
-R, --record-separator=字元串
設定記錄分隔符(預設:換行符號)
-t, --tuples-only 只列印記錄i
-T, --table-attr=文本 設定 HTML 表格標記屬性(例如,寬度,邊界)
-x, --expanded 打開擴展表格輸出
-z, --field-separator-zero
設置欄位分隔符為位元組0
-0, --record-separator-zero
設置記錄分隔符為位元組0
聯接選項:
-h, --host=主機名 資料庫伺服器主機或socket目錄(預設:"本地介面")
-p, --port=埠 資料庫伺服器的埠(預設:"5432")
-U, --username=用戶名 指定資料庫用戶名(預設:"Administrator")
-w, --no-password 永遠不提示輸入口令
-W, --password 強制口令提示 (自動)
更多信息,請在psql中輸入"\?"(用於內部指令)或者"\help"(用於SQL命令),
或者參考PostgreSQL文檔中的psql章節.
臭蟲報告至<[email protected]>.
C:\Documentsand Settings\Administrator>
Ⅳ centos7怎麼進入postgresql資料庫
准備好yum源,命令:yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
yum install postgresql94-server postgresql94-contrib
設置開機啟動,並啟動服務
systemctl enable postgresql-9.4.service
初始化資料庫/usr/pgsql-9.4/bin/postgresql94-setup initdb 然後,
啟動資料庫:systemctl start postgresql-9.4.service
查看進程是否正常啟動,開啟遠程訪問
修改用戶密碼,用命令su到用戶上,如下圖
將postgresq加入防火牆,新建文件/usr/lib/firewalld/services/postgresql.xml如下圖操作:
重啟服務systemctl restart postgresql-9.4.service,進行基本的資料庫操作,就是使用一般的SQL語言
Ⅳ C# 操作PostgreSQL資料庫時的問題。
程序不是假死,是卡在那了,稍等應該就會出現錯誤提示,如果要解決的話,插入前檢查一下主鍵是否存在就知道了。或者postgresql本身也有如果存在就更新,否則就插入的語法,例如
INSERTINTOUM_CUSTOMER(customercode,CompanyFlag,InputTime,LocalVersion)
VALUES('201801010001','0','2017-02-2212:00:00',1)
ONconflict(customercode)
DOUPDATESETCompanyFlag='1',InputTime='2017-02-2212:00:00',LocalVersion=1
Ⅵ 關於postgre資料庫問題,求大神解答
處理辦法如下:
先連上postgres資料庫,然後執行以下操作:
begin;
set transaction read write;
alter database xxx;
set default_transaction_read_only = off;
commit;
Ⅶ postgresql是什麼資料庫
postgresql是功能強大的開源資料庫。
postgresql資料庫是功能強大的開源資料庫,它支持豐富的數據類型(如JSON和JSONB類型、數組類型)和自定義類型。
PostgreSQL資料庫提供了豐富的介面,可以很方便地擴展它的功能,如可以在GiST框架下實現自己的索引類型,支持使用C語言寫自定義函數、觸發器,也支持使用流行的編程語言寫自定義函數。
PostgreSQL資料庫優點
1、對超許可數量軟體使用的天然免疫力
對一些商業性質的資料庫銷售商來說,超許可數量的軟體使用是第一位的問題。而使用PostgreSQL,因為沒有任何授權的費用是,也就沒有任何人可以起訴您違反授權協議違規使用軟體。
2、比商業服務商更好的支持
除了有一般商業公司的支持外,我們還有由PostgreSQL專業人員和熱心的愛好者組成的各種社區,用戶可以向他們尋求支持和幫助。
3、員工成本的顯著降低
相對於市場上大型的商業私有資料庫軟體,我們的系統在設計和開發時已考慮僅需少量的維護和優化,同時仍保持所有功能正常、穩定和性能正常。不僅如此,我們的培訓過程相對於那些商業私有資料庫供應商來說,總體來說有更好的性價比、更容易管理和更接近真實的使用場景。
4、享有盛名的可靠性和穩定性
與很多商業私有資料庫不一樣的是,對很多公司特別常見的是,PostgreSQL在幾年的運行過程中幾乎未出現哪怕是一次的宕機情況,即使是一次,它就是這樣穩定地工作著。
5、擴展性
所有PostgreSQL的源代碼對所有人都是可以免費獲得的。如果您的公司員工需要定製或是給PostgreSQL增加一些功能,他們只需做很少的改動工作,也沒有額外的成本。全球PostgreSQL社區的專業人員和熱心的愛好者也在積極地擴展PostgreSQL的功能。
Ⅷ 怎樣用postgresql建表,建資料庫
PostgreSQL的CREATE TABLE語句是用來在任何指定的的資料庫中創建一個新表。 yii.com
語法
CREATE TABLE語句的基本語法如下:
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns )
);
CREATE TABLE是告訴資料庫系統關鍵字,創建一個新的表。獨特的名稱或標識如下表CREATE TABLE語句。當前資料庫中的表最初是空的,並且將所擁有的用戶發出的命令。
然後在括弧內來定義每一列的列表,在表中是什麼樣的數據類型。其語法變得更清晰,下面的例子。
實例
下面是一個例子,它創建了一個公司ID作為主鍵的表和NOT NULL的約束顯示這些欄位不能為NULL,同時創建該表的記錄:
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
讓我們創建一個表,在隨後的章節中,我們將在練習中使用:
CREATE TABLE DEPARTMENT(
ID INT PRIMARY KEY NOT NULL,
DEPT CHAR(50) NOT NULL,
EMP_ID INT NOT NULL
);
可以驗證已成功創建使用\d命令,將用於列出了附加的資料庫中的所有表。
testdb-# \d
以上PostgreSQL的表會產生以下結果:
List of relations
Schema | Name | Type | Owner
--------+------------+-------+----------
public | company | table | postgres
public | department | table | postgres
(2 rows)
使用\d表名來描述每個表如下所示:
testdb-# \d company
以上PostgreSQL的表會產生以下結果:
Table "public.company"
Column | Type | Modifiers
-----------+---------------+-----------
id | integer | not null
name | text | not null
age | integer | not null
address | character(50) |
salary | real |
join_date | date |
Indexes:
"company_pkey" PRIMARY KEY, btree (id)
Ⅸ 使用docker compose部署postgreSQL資料庫
註:啟動時可能會出現許可權問題,所以添加了 privileged: true
在docker-compose的時候 docker-compose up會優先使用已有的容器,而不是重新創建容器。需要帶上 --force-recreate 參數重新創建容器 docker-compose up -d --force-recreate 。
本文內容參考:
https://blog.csdn.net/sinat_20560415/article/details/81204445
註:當有多個schema(模式)時,可以設置postgresql.conf改變默認的search_path,否則需要每次登陸時設置search_path以訪問不同模式下面的對象;