PG数据库创建数据库和用户,仅创建的用户有权限访问该库

一、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。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以按照以下步骤为用户开放整个数据库的视图访问权限: 1. 进入PostgreSQL数据库命令行界面,使用超级用户登录。 2. 执行以下命令来创建一个用户: ```sql CREATE USER new_user WITH PASSWORD 'password'; ``` 注意将"new_user"替换为你想要创建用户用户名,并将"password"替换为该用户的密码。 3. 授予用户访问数据库权限: ```sql GRANT CONNECT ON DATABASE your_database TO new_user; ``` 将"your_database"替换为你要授权的数据库名称。 4. 授予用户访问数据库中所有表的权限: ```sql GRANT USAGE ON ALL TABLES IN SCHEMA public TO new_user; ``` 该命令将授权用户在"public"模式下访问所有表。如果你使用了其他模式,请将"public"替换为你的模式名称。 5. 授予用户访问数据库中所有序列的权限: ```sql GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO new_user; ``` 该命令将授权用户在"public"模式下访问所有序列。如果你使用了其他模式,请将"public"替换为你的模式名称。 6. 授予用户访问数据库中所有视图的权限: ```sql GRANT SELECT ON ALL TABLES IN SCHEMA public TO new_user; ``` 该命令将授权用户在"public"模式下访问所有视图。如果你使用了其他模式,请将"public"替换为你的模式名称。 7. 退出超级用户会话: ```sql \q ``` 现在用户应该可以访问整个数据库的所有视图了。请确保用户具有足够的权限来执行所需的操作,但不要授予过多的权限以避免安全问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值