以超级用户进入到 db1 这个数据库中,将当前数据库下 public schema 的表都授权于 test

db1=# GRANT ALL PRIVILEGES ON all tables in schema public TO test;
db1=# grant all privileges on database db1 to test;

以新用户登录数据库

# 这里是 openguass, 所以是gsql
omm@9f0ef8c72382:~$ gsql -U 新用户名						# 不指定数据库名字时,默认连接与用户名同名的数据库
omm@9f0ef8c72382:~$ gsql -U test -d db1						# 以 test用户登录,指定连接 db1 数据库
db1=> insert into t_user1 values(12,'fdsf');				# 插入数据, postgresql中不可以双引号

普通用户创建数据库时报错:ERROR: permission denied to create database
登陆超级用户进入数据库

ALTER ROLE 新用户 CREATEROLE CREATEDB;

创建表时报错:ERROR: permission denied for schema public DETAIL: N/A
解决办法:超级用户登录数据库,然后进行授权。

GRANT ALL PRIVILEGES TO 新用户;

postgreSQL 创建用户并授权
openGauss : 新用户权限
postgres数据库查看用户权限
ERROR: permission denied to create database
查看postgresql数据库用户系统权限
Docker容器中导入sql文件

将 sql 文件 导入 docker 中

docker cp FileRecv\employees_data.sql opengauss:/tmp/

查看是否导入成功
在这里插入图片描述
在 opengauss 中 执行 sql文件

# su - omm
omm@9f0ef8c72382:~$ gsql -U test -d employees
employees=> \i /tmp/employees_data.sql

登陆进数据库时,发现 \dt, No relations found.
以及在使用存储过程中,relation “department” does not exist on gaussdb
发现是模式不对,

SHOW search_path;
SET search_path TO myschema;

需要进一步了解的内容,视图,触发器,存储过程,索引,事务,查询进一步掌握

删除用户:

-- 有的时候,用户身上有一些权限,这个时候需要先撤回权限, 然后才能删除
revoke all on database databasename from username;
revoke all on table tablename from username;
revoke all on SCHEMA schemaname from username;			-- 都是类似的
revoke all on SEQUENCE sequence from username;
DROP user username;(现在删除就不会有任何权限受限而删除失败)
-- grant 和 revoke 是类似的
-- 想指定某项权限时, 就将 all 替换掉
GRANT ALL PRIVILEGES ON DATABASE databasename TO username;
GRANT ALL PRIVILEGES ON table tablename TO username;
GRANT SELECT ON SEQUENCE id_employee_seq TO role1;
GRANT USAGE ON SCHEMA employees TO role1;
                    进入到数据库之后:创建新用户create user 新用户名 with password "你的密码";查看有哪几个用户\du以超级用户进入到 db1 这个数据库中,将当前数据库下 public schema 的表都授权于 testdb1=# GRANT ALL PRIVILEGES ON all tables in schema public TO test;db1=# grant all privileges on database db1 to test;以新用户登录数据库#
确认你使用的是正确的用户名和密码,并且该用户具有访问该模式的权限。
确认你正在连接到正确的数据库实例,并且该模式确实存在。
如果你使用的是共享数据库,请确认其他用户是否已经锁定了该模式或者正在对其进行操作。
如果你仍然无法访问该模式,你可...
GRANT ALL PRIVILEGES ON DATABASE testdb01 TO test;
修改数据库的owner为test用户(如果创建时未指定owner、也可以通过alter命令指定)
				
OpenGaussPostgreSQL在创建表空间的语法上有些许不同。具体来说,OpenGauss在创建表空间时,需要指定表空间的路径,而PostgreSQL则不需要。 OpenGauss创建表空间的语法如下: CREATE TABLESPACE tablespace_name LOCATION 'tablespace_path'; 其中,`tablespace_name`是表空间的名称,`tablespace_path`是表空间所在的路径。 PostgreSQL创建表空间的语法如下: CREATE TABLESPACE tablespace_name; 需要注意的是,PostgreSQL创建表空间时不需要指定路径,而是在默认的数据目录下创建一个与表空间同名的目录作为表空间的路径。 除此之外,在使用表空间时,OpenGaussPostgreSQL的语法是一致的。