openGauss
开源数据库
openGauss社区官网
开源社区
新用户权限和permission denied for schema public
2020-11-19新用户权限和permission denied for schema public
新用户权限和 permission denied for schema public
openGauss 安装完成后,会自动创建自定义的帐号,名称默认为 omm。默认用户名 omm 和操作系统用户同名,我们可以通过REPLACE修改其密码。
omm=# alter role omm identified by 'Open6au55' replace 'Gauss@123';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
ALTER ROLE
omm=# alter role omm identified by 'Open6au55' replace 'Gauss@123';
ERROR: The old password is invalid.
可以使用 omm 登录,创建一个新的用户,我们可以看到 openGauss 对于密码安全的要求:
omm=# create user enmotech with password 'enmotech';
ERROR: Password must contain at least three kinds of characters.
omm=#
omm=# create user enmotech with password 'Enm0t3ch';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
创建独立的数据库,给用户授权:
omm=# create database enmotech owner enmotech;
CREATE DATABASE
omm=# GRANT ALL PRIVILEGES ON DATABASE enmotech to enmotech;
GRANT
omm=# ALTER ROLE enmotech CREATEDB;
ALTER ROLE
omm=# \q
在操作系统上,连接到容器数据库中:
[root@ecs-514e-0004 ~]# gsql -d enmotech -U enmotech -W'Enm0t3ch' -h ***.***.***.*** -p 8888
gsql ((openGauss 1.0 build ec0e781b) compiled at 2020-04-27 17:25:57 commit 2144 last mr 131 )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
enmotech=>
注意,此时创建数据表还是遇到错误,不允许在 public 上创建:
enmotech=> create table yunhe (id number);
ERROR: permission denied for schema public
类似的建表失败报错可能还累死:
[Err] ERROR: permission denied for schema public
LINE 1: create table xxxx
这是因为安全原因,不允许普通客户在 public 模式下操作。
在测试需要下,可以将 ALL PRIVILEGES 授予 enmotech 用户,需要使用超级用户授权,这里是 omm 用户:
omm=# GRANT ALL PRIVILEGES TO enmotech;
ALTER ROLE
系统权限又称为用户属性,包括 SYSADMIN、CREATEDB、CREATEROLE、AUDITADMIN 和 LOGIN。
omm=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------------------+-----------
enmotech | Sysadmin | {}
gaussdb | | {}
omm | Sysadmin, Create role, Create DB, Replication, Administer audit, UseFT | {}
现在 enmotech 这个用户,可以继续测试了:
eygle=> create table eygle(id number);
CREATE TABLE
eygle=> drop table eygle;
DROP TABLE
在 openGauss 中,通过 sql 文件,加载数据也非常简单:
eygle=> \i /tmp/dan.sql
INSERT 0 1
INSERT 0 1
...