月度归档 01-19

Docker-PostgreSQL 

1.进入容器

docker exec -it postgres bash

2.查看 PostgreSQL 状态

#查看状态
pg_ctl status
# 重载配置
pg_ctl reload

# 重启 PostgreSQL
pg_ctl restart

# 停止 PostgreSQL
pg_ctl stop

# 启动 PostgreSQL
pg_ctl start

3.PostgreSQL 数据库操作

# 查看所有数据库
psql -U postgres -c "\l"

# 查看所有用户
psql -U postgres -c "\du"

# 查看所有表
psql -U postgres -c "\dt"

4.创建远程访问用户

CREATE USER remote_user WITH PASSWORD 'StrongPass123!';
ALTER USER remote_user WITH PASSWORD 'NewPass123!';

GRANT ALL PRIVILEGES ON DATABASE database_name TO new_user;

5.授予数据库权限

-- 授予连接权限
GRANT CONNECT ON DATABASE your_database TO your_user;
-- 查看已授予的权限
SELECT
datname as database,
datacl as permissions
FROM pg_database
WHERE datname = 'your_database';

6.切换到目标数据库授予表权限

-- 切换到目标数据库
\c your_database

-- 授予模式权限
GRANT USAGE ON SCHEMA public TO your_user;

-- 授予现有表的所有 CRUD 权限
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO your_user;

-- 授予序列权限(如果表有自增字段)
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO your_user;

 
-- 重置序列: 使用 setval(已经有权限)
SELECT setval('"Port_id_seq"', 1, false);