等保2.0数据库测评postgreSQL数据库测评.pdf
1、检查版本和安装位置Navicat管理⼯具
rpm-qa|greppostgres
rpm-qal|greppostgres
2、查看配置⽂件
cat/var/lib/pgsql/data/postgresql.conf
ssl字段远程管理
pg_hba.conf
hostssl字段,远程管理地址
hostallall0.0.0.0/0trust
type、database、user、address、method
①TYPE定义了多种连接PostgreSQL的⽅式,分别是:“local”使⽤本地unix套接字,
“host”使⽤TCP/IP连接(包括SSL和⾮SSL),“host”结合“IPv4地址”使⽤IPv4⽅式,
结合“IPv6地址”则使⽤IPv6⽅式,“hostssl”只能使⽤SSLTCP/IP连接,
“hostnossl”不能使⽤SSLTCP/IP连接。
②DATABASE指定哪个数据库,多个数据库,库名间以逗号分隔。
③USER指定哪个数据库⽤户(PostgreSQL正规的叫法是⻆⾊,role),多个⽤户以逗号
分隔。
④ADDRESS项local⽅式不必填写,该项可以是IPv4地址或IPv6地址,可以定义某台主
机或某个⽹段。
⑤NETHOD指定如何处理客户端的认证。常⽤的有ident、md5、password、trust、
reject。
ident:是Linux下PostgresSQL默认的local认证⽅式,凡是能正确登录服务器的操作系
统(注:不是数据库⽤户)就能使⽤本⽤户映射的数据库⽤户不需密码登录数据库。⽤户映射
⽂件为pg_ident.conf,这个⽂件记录着与操作系统⽤户匹配的数据库⽤户,如果某操作系
统⽤户在本⽂件中没有映射⽤户,则默认的映射数据库⽤户与操作系统⽤户同名。
md5:是常⽤的密码认证⽅式,如果你不使⽤ident,最好使⽤md5。密码是以md5形式传送
给数据库,较安全,且不需建⽴同名的操作系统⽤户。
password:是以明⽂密码传送给数据库,建议不要在⽣产环境中使⽤。
trust:是只要知道数据库名就不需要密码或ident就能登录,建议不要在⽣产环境中使
⽤。
reject:是拒绝认证。
3、登录数据库,退出postgresql数据库⽤exit命令
su-postgres
psql-Upostgres
psql-h127.0.0.1-dpostgres-Upostgres
4、查看版本
pg_ctl--version
selectversion();
5、查看数据库⽤户和密码:postgres⽤户等同于SQLServer⾥⾯的sa⽤户。
select*frompg_shadow;
6、查看密码复杂度情况
showshared_preload_libraries;查看是否启⽤了passwordcheck模块
selectname,settingfrompg_settingswherenamelike%dynamic%;
select*frompg_shadow查看valuntil字段,密码失效⽇期
7、查看最⼤错误连接次数:执⾏more/var/lib/pgsql/data/postgresql.conf,查
看max_connections的值。
8、查看超时时间设置:执⾏more/var/lib/pgsql/data/postgresql.conf,查看
authentication_timeout的值,完成服务器认证的最⻓时间,如果在这个时间内没有完
成认证,服务器将关闭连接。
select*frompg_settingspswhereps.namelike%timeout%;
idle_in_transaction_session_timeout空闲事务超时,lock_timeout
锁等待超时,
9、查看是否收集⽇志信息:执⾏showlogging_collector;
10、查看⽇志记录类型,默认是stderr,只记录错误输出。执⾏show
log_destination;命令查看⽇志类型。
11、访问控制
登录数据库,使⽤\du命令列出现有⻆⾊,以及相应的⻆⾊权限
LOGIN--具有登录权限
SUPERUSER--超级⽤户,具有所有系统权限,除了登录验证
CREATEDB--创建数据库权限
CREATEROLE--创建role权限
PASSWORD--设置密码
Navicat管理⼯具,⻆⾊
默认账户为po