扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在PostgreSQL中并没有CREATE TABLE权限名称,这是与其它数据库不同的一个地方,PostgreSQL是通过控制是否在模式schema中上有CREATE控制用户的能否创建表的权限的,默认安装下,任何用户都有在模式public中CREATE的权限,所以要创建只读账号的第一步,我们要先去除在模式public中的CREATE权限:
成都创新互联公司主要从事成都网站建设、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务双鸭山,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
REVOKE CREATE ON SCHEMA public from public;
下面的SQL创建了一个名为“readonly”的用户:
CREATE USER readonly with password 'query';
然后把现有的所有在public这个schema下的表的SELECT权限赋给用户readonly,执行下面的SQL命令:
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
上面的SQL命令只把现有的表的权限给了用户readonly,但如果这之后创建的表,readonly用户还是不能读,需要使用下面的SQL把以后创建的表的SELECT权限也给用户readonly:
postgresql中一个序列对象通常用于为行或者表生成唯一的标识符。查看序列:psql 的 \d 命令输出一个数据库对象,包括 Sequence,表,视图和索引。你还可以使用 \ds 命令只查看当前数据库的所有序列。例如:pigdb-# \ds List of relations Schema | Name | Type | Owner--------+-----------------------+----------+-------- public | author_ids | sequence | ichexw public | shipments_ship_id_seq | sequence | ichexw(2 rows)
1、关闭数据库服务
2、进入数据库的工作空间目录 (如果是建库是没有另外指定,应该就是postgresql安装目录下的 data 目录)
3、编辑修改文件 pg_hba.conf, 把连接权限设置的 md5 加密方式 改成 trust以我的为例,原本设置是
1
2
3
4
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
修改为
1
2
3
4
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 trust
4、从新启动postgresql数据库服务
5、可以不用密码就能用postgres用户登陆,然后执行修改用户密码的操作
6、修改 pg_hba.conf 文件,改回到 md5 方式,再重启数据库服务就ok了
7、再执行建用户,和建库操作
createuser.exe -s -P foo -U postgres
createdb.exe --encoding=UTF8 --owner=foo --template=template_postgis -Ufoo
参数:
--encoding=UTF8 设置数据库的字符集
--owner=foo 设置数据库的所有者
--tmplate=template_postgis 设置建库的模板,该模板支持空间数据操作
--Ufoo 用foo用户身份建立数据库
我们使用Postgresql数据库的时候,默认都是用postgres用户进行数据操作。但是有时为了数据安全,我们会另外建一些账号给相关的工作人员使用。那么Postgresql数据库中如何新建登录用户呢?下面我给大家分享一下。
工具/材料
pgAdmin4
01
首先打开Postgresql的管理工具pgAdmin4,接着双击服务器名称,如下图所示
02
在弹出的Connect to Server界面中输入postgres用户的密码,然后点击OK按钮,如下图所示
03
进入到数据库以后右键单击"登录/组角色"选项,选择Create下面的Login/Group Role选项,如下图所示
04
接下来会弹出创建登录用户的界面,我们先给用户起一个名字,尽量是英文,如下图所示
05
然后切换到Definition页卡,给登录用户设置一个登录密码,如下图所示,注意Connection limit要设置为-1
06
接着切换到Privileges界面,这里需要给登录用户设置一下操作权限,大家可以根据自己的需要设置即可,如下图所示
07
接下来切换到Membership页卡,给登录用户设置一个角色,这里我直接把管理员的角色给它了,如下图所示
08
上述设置完毕以后回到数据库主界面,我们就可以看到"登录/组角色"下面就已经有我们新建的登录用户了,如下图所示
09
最后我们断开当前的连接,用新建的用户进行登录,如果登录正常的话则代表一切设置成功,如下图所示
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流