仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 577|回复: 10
打印 上一主题 下一主题

[其他Linux] 来一发怎样设置postgresql会见认证设置

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 12:01:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
但不会命令而成为高手也是不可能的.这就好比学英语,什么语法都不懂,只捧着单词手册背单词是学不会英语的,但是没有单词词汇量英语水平也提不高的。
安装postgresql是一件很复杂的事,可是当我第一次安装了postgresql今后,它的平安设置已经让我困扰过一阵,如今我将以我的履历为线索来说述怎样设置postgresql的会见认证,postgresql的版本是7.3.1,老一点的版本在设置文件上会有稍许分歧,请本人注重区分。别的,在浏览中,请注重辨别数据库用户和体系用户的区分,以避免搅浑。
  postgresql的会见认证设置次要触及到两个次要的设置文件:postgresql.conf和pg_hba.conf。
  postgresql.conf包括了很多的选项,这些选项把持了postgresql.conf的各个方面,两头影响会见认证的选项是:
  unix_socket_group
  设置Unix域套接字的组一切人,(套接字的一切权用户老是启动postmaster的用户)与UNIX_SOCKET_PERMISSIONS选项一同利用能够给这类套接字范例增添分外的会见把持机制,缺省时是一个空字串,也就是利用以后用户的缺省的组,这个选项只能在服务器启动时设置。
  unix_socket_permissions
  给Unix域套接字设置会见权限,Unix域套接字利用一般的Unix文件体系权限集。可选的值能够是一个chmod和umask体系挪用能够承受的数字形式。(要利用客户化的八进制格局,该数字必需以0(零)开首)
  缺省权限是0777,意即任何人都能够连接,公道的选则多是0770(只要用户和组,参阅UNIX_SOCKET_GROUP)和0700(只要用户)。(请注重关于Unix套接字而言,实践上只要写权限成心义,并且也没有举措设置大概作废读或实行权限)
  这个选项只能在服务器启动时设置。
  pg_hba.conf是设置会见认证的次要文件,格局为每笔记录一行,每行指定一条会见认证。设定一条会见认证包括了7个部分:毗连体例(type)、数据库(database)、用户名(user)、ip地点(ip-address)、子网掩码(ip-mask)、认证办法(authenticationmethod)、认证设置(authentication-option),以下是这7个部分的具体申明:
  毗连体例(type)
  毗连体例共有三种:local、host、hostssl
  local
  这笔记录婚配经由过程Unix域套接字举行的连接妄图,没有这类范例的纪录,就不同意Unix域套接字的连接。
  host
  这笔记录婚配经由过程TCP/IP收集举行的连接实验,请注重,除非服务器是带着-i选项大概翻开了postgresql.conf内里的tcpip_socket设置参数集启动的,不然TCP/IP连接是被克制失落的。
  hostssl
  这笔记录婚配经由过程在TCP/IP长进行的SSL连接妄图,host纪录能够婚配SSL和非SSL的连接妄图,但hostssl纪录必要SSL连接。
  数据库(database)
  声明纪录所婚配的数据库。值all标明该纪录婚配一切数据库,值sameuser暗示假如被哀求的数据库和哀求的用户同名,则婚配。samegroup暗示哀求的用户必需是一个与数据库同名的组中的成员。在其他情形里,这就是一个特定的PostgreSQL的名字。我们能够经由过程用逗号分开的办法声明多个数据库。一个包括数据库名的文件能够经由过程对该文件前缀@来声明.该文件必须和pg_hba.conf在统一个目次。
  用户名(user)
  为这笔记录声明所婚配的PostgreSQL用户,值all标明它婚配于一切用户。不然,它就是特定PostgreSQL用户的名字,多个用户名能够经由过程用逗号分开的办法声明,组名字能够经由过程用+做组名字前缀来声明。一个包括用户名的文件能够经由过程在文件名后面前缀@来声明,该文件必须和pg_hba.conf在统一个目次。
  ip地点(ip-address)
  子网掩码(ip-mask)
  这两个字段包括尺度的点分十进制暗示的IP地点/掩码值。(IP地点只能用数字的体例声明,而不克不及用域名大概主机名)它们俩放在一同,声了然这笔记录婚配的客户机的IP地点。正确的逻辑是:
  (actual-IP-addressxorIP-address-field)andIP-mask-field
  关于要婚配的纪录必须为零。
  假如毗连体例是host大概hostssl的话,这两项必需指定,不然能够不填。
  认证办法(authenticationmethod)
  trust
  无前提地同意连接,这个办法同意任何能够与PostgreSQL数据库连接的用户以他们希冀的恣意PostgreSQL数据库用户身份举行连接,而不必要口令。
  reject
  连接无前提回绝,经常使用于从一个组中"过滤"某些主机。
  md5
  请求客户端供应一个MD5加密的口令举行认证,这个办法是同意加密口令存储在pg_shadow里的独一的一个办法。
  crypt
  相似md5办法,只是用的是老式的crypt加密认证,用于7.2之前的客户端,关于7.2和今后的客户端,我们倡议利用md5。
  password
  和"md5"一样,可是口令是以明文情势在收集上传送的,我们不该该在不平安的收集上利用这个体例。
  krb4
  用KerberosV4认证用户,只要在举行TCP/IP连接的时分才干用。(译注:Kerberos,"克尔波洛斯",故希腊神话冥王哈得斯的多头看门狗。Kerberos是MIT开辟出来的基与对称加密算法的认证协定和/或密钥互换办法,其特性是必要两个分歧用处的服务器,一个用于认证身份,一个用于通道两头用户的密钥互换。同时Kerberos对收集工夫同步请求对照高,以避免回放打击,因而一般陪伴NTP服务。)
  krb5
  用KerberosV5认证用户.只要在举行TCP/IP连接的时分才干用。(译注:KerberosV5是下面V4的改进,次要是不再依附DES算法,同时增添了一
12下一页


RedHatCentOS等等.学习linux不是逛自由市场,选定版本就要静下心来学习.不要今天换版本明天要升级.这样对你没有好处。
沙发
 楼主| 发表于 2015-1-16 13:30:54 | 只看该作者

来一发怎样设置postgresql会见认证设置

Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手。
些新特征。)</P>  ident
  猎取客户的操纵体系名(关于TCP/IP连接,用户的身份是经由过程与运转在客户端上的ident服务器连接举行判别的,关于当地连接,它是从操纵体系猎取的。)然后反省一下,看看用户是不是同意以请求的数据库用户举行连接,办法是参照在ident关头字前面声明的映照。
  假如你利用了sameuser映照,那末假定用户名是相称的。假如没有声明这个关头字,则在$PGDATA/pg_ident.conf文件中找出映照名。假如这个文件里包括一笔记录标识着ident供应的用户名和哀求的PostgreSQL用户名的映照,那末连接被承受。
  关于当地连接,只要在体系撑持Unix域套接字信托证的情形下才干利用(今朝是Linux,FreeBSD,NetBSD,和BSD/OS)。
  pam
  利用操纵体系供应的可拔出的认证模块服务(PluggableAuthenticationModules)(PAM)来认证。
  认证设置(authentication-option)
  这个可选的字段的寄义取决与选择的认证办法。
  懂得了以上的内容今后,我们能够入手下手设置本人的会见认证。和mysql一样,postgresql默许安装的会见认证是不平安的,当我第一次安装好我的postgresql今后,我发明只需输出`psql-Upgsql-dtemplate1`就能够不必要任何暗码的进进我的数据库,而且利用的是pgsql用户(数据库的最高权限),即便在我利用ALTERUSER为我的数据库用户增加了暗码今后情形也没有失掉改良,经由一番查找,我发明我的pg_hba.conf内容以下:
  localallalltrust
  hostallall0.0.0.00.0.0.0trust
  这申明不管在当地仍是经由过程tcp/ip,任何人都能够不加任何限定的利用任何他想用的身份会见我的数据库,因而我为一切的会见都利用了md5认证办法,我的pg_hba.conf变成:
  localallallmd5
  hostallall0.0.0.00.0.0.0md5
  事变仿佛失掉懂得决,任何人想会见我的数据库都必要经由过程暗码这一关,我的数据库平安了。可是当我有一天从头启动盘算机的今后发明我的postgresql并没有被一般的启动,在终端前我发明启动到postgresql服务启动剧本时,提醒必要输出暗码,本来在设置了md5认证体例今后我的pgsql必要暗码才干够启动服务,为了不每次启动都跑到终端前往输出一次暗码,我的pgsql用户的认证办法必需为trust:
  localpgsqlalltrust
  localallallmd5
  hostallall0.0.0.00.0.0.0md5
  在随后的检测中我发明,固然经由过程收集失掉了回护,可是假如在当地经由过程Unix域套接字举行毗连的话,任何人都仍是可使用`psql-Upgsql-dtemplate1`的体例轻松的进进我的数据库,如许做不言而喻不是我想要的了局,如今我必要unix_socket_permissions的帮忙,当我把这个项设置为0700今后,就只要套接字的一切人,即体系用户pgsql可使用套接字举行毗连,别的假如我的数据库有几个办理员必要最高权限的话,0770也是一个选择,不外临时只要我一个办理员,以是我选择了0700,如今我的pg_hba.conf改动为:
  localpgsqlalltrust
  hostallall0.0.0.00.0.0.0md5
  分离了unix_socket_permissions今后,如今只要体系用户pgsql能够无任何限定的毗连(固然,巨大的root破例),而且我也不必每次启动的时分都跑到终端前往输出一次暗码了,而其别人只能经由过程收集毗连,即便登录到了当地盘算机上,其他用户也只能利用`psql-Uxx-dtemplate1-h127.0.0.1`的体例毗连,这类毗连是遭到暗码认证的回护的,这统统恰是我想要的。
  以上就是我的设置历程,我们还可使用pam等认证办法完成加倍庞大的会见认证,不外那些内容已不在本文的会商局限之内了。
</p>
上一页12


尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-18 16:58:10 | 只看该作者
其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。
小妖女 该用户已被删除
地板
发表于 2015-1-27 13:15:18 | 只看该作者
任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。
变相怪杰 该用户已被删除
5#
发表于 2015-2-5 13:51:20 | 只看该作者
主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
柔情似水 该用户已被删除
6#
发表于 2015-2-12 02:57:11 | 只看该作者
Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。
admin 该用户已被删除
7#
发表于 2015-3-2 22:25:24 | 只看该作者
可以说自己收获很大,基本上完成了老师布置的任务,对于拔高的题目没有去做,因为我了解我的水平,没有时间和精力去做。?
兰色精灵 该用户已被删除
8#
发表于 2015-3-11 08:36:34 | 只看该作者
在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。
分手快乐 该用户已被删除
9#
发表于 2015-3-18 07:39:23 | 只看该作者
就这样,我们一边上OS理论课,一边上这个实验,这样挺互补的,老师讲课,一步一步地布置任务
小魔女 该用户已被删除
10#
发表于 2015-3-25 19:18:04 | 只看该作者
然我们对Linux的学习首先是通过对它的产生,发展,到今天仍然在不断完善开始的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-15 15:56

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表