如何重置postgresql用戶密碼


如何重置postgresql用戶密碼
場景:
         打算新建一個postgresql的數據庫 FooDB 並把所有者權限賦給用戶 foo
         正常操作應該是:先創建用戶foo,再用foo身份創建數據庫 FooDB
         操作
         1、先創建用戶 foo,在postgresql的bin目錄下執行命令
               createuser.exe -s -P foo -U postgres
               -s 表示新建 foo用戶是 superuser
               -P 表示執行命令后,顯示輸入密碼的過程
               -U postgres 表示,使用超級用戶postgres的身份連接數據庫服務器,並創建新用戶foo
            
        執行時候要求輸入postgres用戶的密碼,結果發現密碼早忘了,所以需要重新設置postgres用戶的密碼
          
解決方法:
        1、關閉數據庫服務
        2、進入數據庫的工作空間目錄 (如果是建庫是沒有另外指定,應該就是postgresql安裝目錄下的 data 目錄)
        3、編輯修改文件 pg_hba.conf, 把連接權限設置的 md5 加密方式 改成 trust
              以我的為例,原本設置是
1. # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
2. # IPv4 local connections:
3. host    all         all         127.0.0.1/32           md5
              修改為
1. # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
2. # IPv4 local connections:
3. host    all         all         127.0.0.1/32           trust
          4、從新啟動postgresql數據庫服務
          5、可以不用密碼就能用postgres用戶登陸,然后執行修改用戶密碼的操作               
  
  alter user postgres with password 'foobar';
 
           6、修改 pg_hba.conf 文件,改回到 md5 方式,再重啟數據庫服務就ok了
           7、再執行建用戶,和建庫操作
                createuser.exe -s -P foo -U postgres                 
                createdb.exe --encoding=UTF8 --owner=foo --template=template_postgis -Ufoo
                參數:
                   --encoding=UTF8 設置數據庫的字符集
                   --owner=foo 設置數據庫的所有者
                   --tmplate=template_postgis 設置建庫的模板,該模板支持空間數據操作
                   --Ufoo 用foo用戶身份建立數據庫
 


免責聲明!

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



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