PostgreSQL常用SQL语句

PostgreSQL与MySQL语法有一些细微差异,记录一下PostgreSQL常用的SQL语句。

1. 创建数据库、用户,并授予用户权限

# 创建用户并指定owner(不指定owner,对应的用户授权了也看不见)
CREATE DATABASE xxx owner xxx;
create user test with password 'test';

# 授权
GRANT ALL PRIVILEGES ON DATABASE xxx TO xxx;
GRANT ALL PRIVILEGES ON all tables in schema public TO xxx;
GRANT ALL ON SCHEMA public TO xxx;
GRANT USAGE ON SCHEMA public TO xxx;

# 重载配置,让修改生效
SELECT pg_reload_conf();

2. 删除数据库

如果有授权信息,删除数据库时会报错,要删除数据库需要先取消授权。

# 禁止连接
UPDATE pg_database 
SET datallowconn = 'false' 
WHERE datname = 'xxx';

# 关闭已连接进程
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'xxx';

# 取消授权并删除用户
revoke all on database postgres from xxx;
revoke all on all tables in schema public from xxx;
revoke all on schema public from xxx;
revoke usage on schema public from xxx;

# 删除用户(不取消授权也无法删除用户)
drop role xxx;

# 重载配置,让修改生效
SELECT pg_reload_conf();

3. 重命名用户、数据库

# 重命名用户
ALTER USER name RENAME TO new_name;

# 重命名数据库
ALTER DATABASE name RENAME TO new_name;

4. 修改密码

ALTER USER xxx WITH PASSWORD 'xxx';

5. 其他常用

# 统计当前所有连接数
select count(1) from pg_stat_activity;

# 查询当前连接数详细信息
select * from pg_stat_activity;

# 查询最大连接数
show max_connections;

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注