01-19
0
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);