1、创建test10_tbs的表空间,在这个表空间中创建数据库testdb10
create tablespace test10_tbs relative location 'tablespace/test10_tbs';
create database testdb10 with tablespace test10_tbs;
omm=# create tablespace test10_tbs relative location 'tablespace/test10_tbs';
create database testdb10 with tablespace test10_tbs;CREATE TABLESPACE
omm=# create database testdb10 with tablespace test10_tbs;
CREATE DATABASE
omm=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
enmdb | hc | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
musicdb1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
newdb1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
newdb2 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
newdb3 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
omm | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +
| | | | | omm=CTc/omm
template1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +
| | | | | omm=CTc/omm
testdb10 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(10 rows)
omm=# \l+
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace | Description
-----------+-------+----------+-------------+-------------+-------------------+-------+------------+--------------------------------------------
enmdb | hc | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 14 MB | enmtbs |
musicdb1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 13 MB | app_ts |
newdb1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 12 MB | newtbs1 |
newdb2 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 12 MB | newtbs1 |
newdb3 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 12 MB | newtbs1 |
omm | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 13 MB | pg_default |
postgres | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 17 MB | pg_default | default administrative connection database
template0 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +| 12 MB | pg_default | default template for new databases
| | | | | omm=CTc/omm | | |
template1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +| 12 MB | pg_default | unmodifiable empty database
| | | | | omm=CTc/omm | | |
testdb10 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 12 MB | test10_tbs |
(10 rows)
2、使用create user创建用户user10,登录数据库testdb10,创建测试表t1和t2
create user user10 identified by 'qaz_hc123';
grant all privileges on database testdb10 to user10;
\quit
gsql -Uuser10 -Wqaz_hc123 -r -d testdb10
create table t1 as select * from pg_class;
create table t2 as select * from pg_class;
omm=# create user user10 identified by 'qaz_hc123';
CREATE ROLE
omm=# grant all privileges on testdb10 to user10;
ERROR: relation "testdb10" does not exist
omm=# grant all privileges on database testdb10 to user10;
GRANT
omm=# gsql -Uuser10 -Wqaz_hc123 -r -d testdb10
omm-# \quit
omm@911d320f8566:~$ gsql -Uuser10 -Wqaz_hc123 -r -d testdb10
gsql ((openGauss 3.1.0 build 4e931f9a) compiled at 2022-09-29 14:19:46 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
testdb10=> \conninfo
You are connected to database "testdb10" as user "user10" via socket in "/tmp" at port "5432".
testdb10=> create table t1 as select * from pg_class;
create table t2 as select * from pg_class;ERROR: permission denied for schema public
DETAIL: N/A
testdb10=> create table t2 as select * from pg_class;
ERROR: permission denied for schema public
DETAIL: N/A
testdb10=> \q
omm@911d320f8566:~$ gsql -r
gsql ((openGauss 3.1.0 build 4e931f9a) compiled at 2022-09-29 14:19:46 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
omm=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------------------------------------------------------------+-----------
gaussdb | Sysadmin | {}
hc | Sysadmin | {}
john | | {}
omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {}
test | | {}
user10 | | {}
user5 | Sysadmin | {}
omm=# alter user user10 sysadmin;
ALTER ROLE
omm=# \quit
omm@911d320f8566:~$ gsql -Uuser10 -Wqaz_hc123 -r -d testdb10
gsql ((openGauss 3.1.0 build 4e931f9a) compiled at 2022-09-29 14:19:46 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
testdb10=> create table t1 as select * from pg_class;
create table t2 as select * from pg_class;INSERT 0 795
testdb10=> create table t2 as select * from pg_class;
INSERT 0 7983、使用create role创建角色role10,登录数据库testdb10
create role role10 identified by 'qaz_hc123';
\du
gsql -Urole10 -Wqaz_hc123 -r -d testdb10;
testdb10=> create role role10 identified by 'qaz_hc123';
CREATE ROLE
testdb10=> \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------------------------------------------------------------+-----------
gaussdb | Sysadmin | {}
hc | Sysadmin | {}
john | | {}
omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {}
role10 | Cannot login | {}
test | | {}
user10 | Sysadmin | {}
user5 | Sysadmin | {}
testdb10=> \quit
omm@911d320f8566:~$ gsql -Urole10 -Wqaz_hc123 -r -d testdb10;
gsql: FATAL: role "role10" is not permitted to login
omm@911d320f8566:~$ gsql -r
gsql ((openGauss 3.1.0 build 4e931f9a) compiled at 2022-09-29 14:19:46 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
omm=# alter user role10 login;
ALTER ROLE
omm=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------------------------------------------------------------+-----------
gaussdb | Sysadmin | {}
hc | Sysadmin | {}
john | | {}
omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {}
role10 | | {}
test | | {}
user10 | Sysadmin | {}
user5 | Sysadmin | {}
omm=# \quit
omm@911d320f8566:~$ gsql -Urole10 -Wqaz_hc123 -r -d testdb10;
gsql ((openGauss 3.1.0 build 4e931f9a) compiled at 2022-09-29 14:19:46 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
testdb10=> \conninfo
You are connected to database "testdb10" as user "role10" via socket in "/tmp" at port "5432".
testdb10=>
4、将表t1直接删除,将前面创建的表空间和数据库、表t2转给role10,删除用户user10
testdb10=> \conninfo
You are connected to database "testdb10" as user "role10" via socket in "/tmp" at port "5432".
testdb10=> \t
Showing only tuples.
testdb10=> \dt
public | t1 | table | | {orientation=row,compression=no}
public | t2 | table | | {orientation=row,compression=no}
testdb10=> drop table t1;
ERROR: permission denied for relation t1
DETAIL: N/A
testdb10=> \c testdb10 user10
Password for user user10:
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "testdb10" as user "user10".
testdb10=> \conninfo
You are connected to database "testdb10" as user "user10" via socket in "/tmp" at port "5432".
testdb10=> drop table t1;
DROP TABLE
testdb10=> \db
app_ts | omm | tablespace/app_ts01
enmtbs | omm | tablespace/enmtbs01
newtbs1 | omm | tablespace/newtbs1
pg_default | omm |
pg_global | omm |
tbs_idx | omm | tablespace/tbs_idx1
test10_tbs | omm | tablespace/test10_tbs
testdb10=> \db+
app_ts | omm | tablespace/app_ts01 | |
enmtbs | omm | tablespace/enmtbs01 | |
newtbs1 | omm | tablespace/newtbs1 | |
pg_default | omm | | |
pg_global | omm | | |
tbs_idx | omm | tablespace/tbs_idx1 | |
test10_tbs | omm | tablespace/test10_tbs | |
testdb10=> alter tablespace test10_tbs owner to role10;
ALTER TABLESPACE
testdb10=> alter database testdb10 owner to role10;
ALTER DATABASE
testdb10=> \l+
enmdb | hc | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 14 MB | enmtbs |
musicdb1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 13 MB | app_ts |
newdb1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 12 MB | newtbs1 |
newdb2 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 12 MB | newtbs1 |
newdb3 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 12 MB | newtbs1 |
omm | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 13 MB | pg_default |
postgres | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 17 MB | pg_default | default administrative connection database
template0 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +| 12 MB | pg_default | default template for new databases
| | | | | omm=CTc/omm | | |
template1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +| 12 MB | pg_default | unmodifiable empty database
| | | | | omm=CTc/omm | | |
testdb10 | role10 | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/role10 +| 13 MB | test10_tbs |
| | | | | role10=CTc/role10+| | |
| | | | | user10=CTc/role10+| | |
| | | | | user10=APm/role10 | | |
testdb10=> \db+
app_ts | omm | tablespace/app_ts01 | |
enmtbs | omm | tablespace/enmtbs01 | |
newtbs1 | omm | tablespace/newtbs1 | |
pg_default | omm | | |
pg_global | omm | | |
tbs_idx | omm | tablespace/tbs_idx1 | |
test10_tbs | role10 | tablespace/test10_tbs | |
testdb10=> \c
Password for user user10:
FATAL: Invalid username/password,login denied.
Previous connection kept
testdb10=> \conninfo
You are connected to database "testdb10" as user "user10" via socket in "/tmp" at port "5432".
testdb10=> drop user user10;
ERROR: current user cannot be dropped
testdb10=> \c
Password for user user10:
FATAL: Invalid username/password,login denied.
Previous connection kept
testdb10=> quit\\
Invalid command \. Try \? for help.
testdb10-> \quit
omm@911d320f8566:~$ gsql -r
gsql ((openGauss 3.1.0 build 4e931f9a) compiled at 2022-09-29 14:19:46 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
omm=# drop user user10;
ERROR: role "user10" cannot be dropped because some objects depend on it
DETAIL: privileges for database testdb10
omm=# revoke all privileges on testdb10 from user10;
ERROR: relation "testdb10" does not exist
omm=# revoke all privileges on database testdb10 from user10;
REVOKE
omm=# drop user user10;
DROP ROLE
5、最后删除role10
testdb10=# drop table t2;
DROP TABLE
testdb10=# \c omm
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "omm" as user "omm".
omm=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+--------+----------+-------------+-------------+-------------------
enmdb | hc | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
musicdb1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
newdb1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
newdb2 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
newdb3 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
omm | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +
| | | | | omm=CTc/omm
template1 | omm | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/omm +
| | | | | omm=CTc/omm
testdb10 | role10 | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/role10 +
| | | | | role10=CTc/role10
(10 rows)
omm=# drop user rol10 cascade;
ERROR: role "rol10" does not exist
omm=# drop user role10 cascade;
ERROR: role "role10" cannot be dropped because some objects depend on it
DETAIL: owner of database testdb10
owner of tablespace test10_tbs
omm=# alter database testdb10 owner to omm;
ALTER DATABASE
omm=# \db+
List of tablespaces
Name | Owner | Location | Access privileges | Description
------------+--------+-----------------------+-------------------+-------------
app_ts | omm | tablespace/app_ts01 | |
enmtbs | omm | tablespace/enmtbs01 | |
newtbs1 | omm | tablespace/newtbs1 | |
pg_default | omm | | |
pg_global | omm | | |
tbs_idx | omm | tablespace/tbs_idx1 | |
test10_tbs | role10 | tablespace/test10_tbs | |
(7 rows)
omm=# alter tablespace test10_tbs owner to omm;
ALTER TABLESPACE
omm=# drop role role10;
DROP ROLE
omm=# 「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




