mysql 用户概念_传输概念 – db对象的用户/组/权限从mysql到postgresql
這似乎比stackoverflow更適合這里,所以這里:
我一直在使用mysql一段時間以來,因為在大多數(shù)便宜的虛擬主機(jī)上,它是提供的數(shù)據(jù)庫.但是,現(xiàn)在我開始認(rèn)真開發(fā)Web應(yīng)用程序,我一直在本地使用postgresql作為我的數(shù)據(jù)庫,以便在我感到舒服時在客戶端安裝上正確使用它.
我唯一沒有掌握的(當(dāng)然是基礎(chǔ)知識)是用戶/組/權(quán)限的概念.在mysql中,我創(chuàng)建用戶,我可以授予他們對我希望他們有權(quán)訪問的各種表的權(quán)限.
這個概念在Postgres中如何運(yùn)作?可以?在我的本地機(jī)器上,我一直允許用戶apache訪問我的表,以便我的django應(yīng)用程序可以工作,通過:
echo "GRANT SELECT,INSERT,UPDATE,DELETE ON TABLE $table TO $2"
echo "GRANT SELECT,INSERT,UPDATE,DELETE ON TABLE $table TO $2" | psql $1
echo "GRANT SELECT,UPDATE ON SEQUENCE ${table}_id_seq TO $2"
echo "GRANT SELECT,UPDATE ON SEQUENCE ${table}_id_seq TO $2" | psql $1
(更大的腳本的一部分)
這樣安全嗎?我非常肯定每個應(yīng)用程序用戶聽起來像一個更明智的想法,但后來我不知道.
所以,我猜這會引起我的疑問:
>用戶/組/權(quán)限如何在postgresql中運(yùn)行?
>他們?nèi)绾闻cmysql相比?
>什么是最佳做法?
解決方法:
postgres中沒有用戶和組(> 8.2?),只有ROLE,角色可能會或可能無法登錄.這并不重要,因為CREATE USER和CREATE GROUP只是CREATE ROLE的別名.
正如@ Peter Eisentraut所說,這段代碼應(yīng)該可以正常工作.
我在這方面注意到的一些更大的差異,除了Postgres使用Roles而不是用戶之外,Postgres使用ident對用戶進(jìn)行數(shù)據(jù)庫身份驗證的方式允許系統(tǒng)用戶通過系統(tǒng)用戶訪問沒有密碼的數(shù)據(jù)庫 – > posgres用戶映射,為什么默認(rèn)情況下映射它們是否相同.有關(guān)身份驗證的更多信息,請參閱the auth method documentation.
就表權(quán)限而言,據(jù)我所知,它們非常接近.但是,您可以在postgres中使您的權(quán)限更加精細(xì).現(xiàn)在,在postgres中,您甚至可以使用GRANT將用戶限制為特定列,在某些即將推出的版本中,它應(yīng)該能夠按行限制數(shù)據(jù)庫用戶.
我絕對建議通過不同的用戶/數(shù)據(jù)庫限制來限制不同的應(yīng)用程序,雖然你也可以使用SCHEMA而不是數(shù)據(jù)庫,但是如果你擁有一個模式,你可以修改其中的任何內(nèi)容,所以它不是很精細(xì).
任何最佳實踐可能都取決于您的應(yīng)用程序,實際上您應(yīng)該閱讀文檔并找出最適合該應(yīng)用程序的內(nèi)容.
標(biāo)簽:mysql,authentication,postgresql,authorization
來源: https://codeday.me/bug/20190807/1606035.html
總結(jié)
以上是生活随笔為你收集整理的mysql 用户概念_传输概念 – db对象的用户/组/权限从mysql到postgresql的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 山东警方破获国内首例第三方支付公司特大网
- 下一篇: php sequelize,node,e