建表的时候,区分大小写敏感和大小写不敏感;创建库的时候先创建用户,再创建库。数据库创建直接分配给某个用户,不然库的权限会给gbase这个超管,创建库后就不可改所属了
-- 服务启停
gs_om -t stop
gs_om -t start
gs_om -t restart
-- 服务状态
gs_om -t status --detail
---连接数据库
gsql -d postgres -p 15400
---修改密码
=# ALTER ROLE user_name IDENTIFIED BY '新密码' REPLACE '旧密码'
---退出数据库
=# \q
-- 创建用户
create user username identified by 'password';
-- 创建数据库(dbcompatibility参数缺省值是'A'代指oracle,'B'代指mysql,'PG'代指pg)
dbcompatibility='A' 是兼容oracle
dbcompatibility='B' 是兼容mysql
dbcompatibility='PG' 是兼容pg
大小写敏感:
create database databasename ENCODING 'UTF8' LC_COLLATE'en_US.UTF-8' LC_CTYPE'en_US.UTF-8' dbcompatibility = 'B' owner username;
大小写不敏感:
create database databasename ENCODING 'UTF8' owner username;
-- 修改密码
ALTER USER username IDENTIFIED BY 'password';
-- 删库跑路
drop database databasename;
-- 查看链接
SELECT * FROM pg_stat_activity WHERE datname = 'databasename';#查看连接库的用户
CLEAN CONNECTION TO ALL FORCE FOR DATABASE databasename;#断开连接库的用户
-- 给操作数据所有权限(给Sysadmin)
GRANT all PRIVILEGES TO username;
-- 取消超管权限
ALTER USER username NOSYSADMIN;
-- 授权数据库权限(只是能创建模式,库下已有的模式还是没权限)
--(不允许该用户再把权限授予别人)
GRANT all PRIVILEGES ON DATABASE databasename TO username;
--(允许该用户再把权限授予别人 WITH GRANT OPTION)
GRANT all PRIVILEGES ON DATABASE databasename TO username WITH GRANT OPTION;
-- 移除
REVOKE all ON DATABASE databasename FROM username;
-- 授权模式权限
--(只是能创建表,模式下已有的表还是没权限)
GRANT all PRIVILEGES ON SCHEMA schemaname TO username;
--(模式下已有的表 赋予权限)
GRANT all PRIVILEGES ON all TABLES IN SCHEMA schemaname TO username;
--(此后模式下新建的表也继承权限)
ALTER DEFAULT PRIVILEGES IN SCHEMA schemaname GRANT ALL ON TABLES TO username;
-- 移除
REVOKE all ON SCHEMA schemaname FROM username;
--(单独授权模式下表权限)
GRANT all PRIVILEGES ON TABLE schemaname.tabename TO username;
-- 移除
REVOKE all ON schemaname.tabename FROM username;