一、navicat工具创建
使用超级用户登录执行以下语句:
CREATE USER test WITH PASSWORD 'password123'; -- 创建test用户并设置密码
ALTER USER test WITH CREATEDB; -- 分配创建数据库的权限
ALTER USER test WITH LOGIN; -- 允许用户登录
CREATE DATABASE testdb OWNER test; ---创建testdb数据库所属者为test
GRANT ALL PRIVILEGES ON DATABASE testdb TO test;---给test用户授权testdb库所有权限;
二、命令行创建
postgres用户创建(因为安装pg数据库后,系统会自动创建一个同名用户)
[root@localhost data]# cat /etc/passwd |grep postgres
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
[root@localhost data]# groups postgres
postgres : postgres
[root@localhost data]# su postgres
bash-4.2$ psql
psql (14.10)
输入 "help" 来获取帮助信息.
postgres=# drop user if exists test;---如果存在test用户删除
DROP ROLE
postgres=# create user test with password 'test';---创建test用户初始化密码为test
CREATE ROLE
postgres=# ALTER USER test WITH CREATEDB;---允许test用户创建数据库
ALTER ROLE
postgres=# ALTER USER test WITH LOGIN;---允许test登录数据库
ALTER ROLE
postgres=# CREATE DATABASE testdb OWNER test;---创建数据库testdb并将所属者设为test用户
CREATE DATABASE
postgres=# GRANT ALL PRIVILEGES ON DATABASE testdb TO test;---将testdb数据库所有权限授权给test
GRANT
postgres=# \q
bash-4.2$ exit
exit
[root@localhost data]#
三、开启远程访问
1、编辑配置文件
文件:postgresql.conf
位置:安装路径下的(/u01/apps/pgsql14/data/postgresql.conf)
添加/修改:在所有IP地址上监听,从而允许远程连接到数据库服务器:
listening_address: '*'
文件:pg_hba.conf
位置:安装路径下的(/u01/apps/pgsql14/data/pg_hba.conf)
添加/修改:允许任意用户从任意机器上以密码方式访问数据库,把下行添加为第一条规则:
host all all 0.0.0.0/0 md5
2、重启数据库服务:
$ sudo systemctl restart postgresql
3、此后即可从其它机器上登录,例如用Navicat for PostgreSQL:
主机名或IP: 192.*.*.*
端口: 5432
初始数据库: postgres
用户: postgres
密码: ****** (数据库用户xxf的密码,不是Linux用户xxf的密码)
四、常用数据库中的schema异同
- PostgreSQL中,一个database下可以有多个schema。可以给schema指定一个owner,如果没有指定,那么当前用户就是schema的默认owner。
- 在Oracle数据库中不能直接新建一个schema,系统在创建一个用户的同时为这个用户创建一个同名的schem并作为该用户的缺省shcema。即schema的个数同user的个数相同,而且schema名字同user名字一个一个地 对应并且相同。
- 在MySQL中没有schema,所以创建一个database的效果和建立一个schema是相同的。我们可以简单的理解为,MySQL中的database就是schema。