SQLAdmin如何进行权限管理
导读:SQLAdmin权限管理实操指南 一 概念与总体原则 将SQLAdmin理解为具备高权限的数据库管理账号或角色,目标是用最小权限原则完成运维,同时保留可审计与可回滚能力。 建议采用分权分域:区分日常DBA运维账号与应用连接账号;按库/模式...
SQLAdmin权限管理实操指南
一 概念与总体原则
- 将SQLAdmin理解为具备高权限的数据库管理账号或角色,目标是用最小权限原则完成运维,同时保留可审计与可回滚能力。
- 建议采用分权分域:区分日常DBA运维账号与应用连接账号;按库/模式/表/列粒度授权;启用审计日志与定期备份;对生产变更使用工单+复核流程。
二 在主流数据库中的实施步骤
- MySQL
- 登录:
mysql -u root -p - 创建管理员并授予全局权限:
CREATE USER 'sqladmin'@'localhost' IDENTIFIED BY 'StrongPass!23'; GRANT ALL PRIVILEGES ON *.* TO 'sqladmin'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; - 按库授权:
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'appuser'@'%'; - 撤销与查看:
REVOKE ALL PRIVILEGES ON mydb.* FROM 'appuser'@'%'; SHOW GRANTS FOR 'appuser'@'%';
- 登录:
- PostgreSQL
- 登录:
sudo -u postgres psql - 创建管理员并授予创建库/角色能力:
CREATE USER sqladmin WITH PASSWORD 'StrongPass!23'; ALTER ROLE sqladmin WITH CREATEDB CREATEROLE INHERIT LOGIN; - 按库授权:
GRANT ALL PRIVILEGES ON DATABASE mydb TO sqladmin; - 按模式/表授权:
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO sqladmin; GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO sqladmin; - 撤销:
REVOKE ALL PRIVILEGES ON DATABASE mydb FROM sqladmin;
- 登录:
- SQL Server
- 图形化:SSMS 中在“安全性-登录名”新建登录,服务器角色勾选sysadmin即获全权;或在目标数据库“安全性-用户-新建用户”映射到该登录,在“数据库角色成员身份”勾选db_owner获得库级完全控制;只读/只写可用db_datareader/db_datawriter。
- T-SQL(示例):
CREATE LOGIN sqladmin WITH PASSWORD = 'StrongPass!23'; ALTER SERVER ROLE sysadmin ADD MEMBER sqladmin;(生产慎用 sysadmin)
三 图形化工具与界面操作
- 若“SQLAdmin”指phpMyAdmin/MySQL Workbench等图形化工具:
- 登录管理端后,在“Users/Roles”“Databases”“Privileges”页执行创建用户、设置主机白名单、授予库/表级权限、查看与撤销授权等操作。
- 适用于Ubuntu/CentOS等环境的日常运维,便于非命令行场景下的权限配置与复核。
四 安全加固与运维要点
- 强化认证与网络:使用强密码与定期轮换;限制来源主机(如仅内网网段);对外网开放时启用SSL/TLS加密连接;必要时仅开放必要端口(如3306/5432)。
- 最小权限与职责分离:应用账号遵循最小权限;区分运维账号与应用账号;按需授予只读/读写/结构变更等细粒度权限。
- 审计与监控:启用数据库通用查询日志/错误日志与审计能力;在 CentOS 可用
journalctl -u mysqld -f或journalctl -u postgresql -f实时查看服务日志;定期审计高权账号与异常语句。 - 备份与恢复演练:定期执行全量/增量备份并验证可恢复性;如
mysqldump -u root -p mydb > mydb.sql备份,mysql -u root -p mydb < mydb.sql恢复。
五 快速命令清单
- MySQL
- 创建与全权:
CREATE USER 'sqladmin'@'localhost' IDENTIFIED BY 'P@ssw0rd'; GRANT ALL PRIVILEGES ON *.* TO 'sqladmin'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; - 库级读写:
GRANT SELECT, INSERT, UPDATE, DELETE ON sales.* TO 'sales_rw'@'%'; - 撤销与查看:
REVOKE ALL PRIVILEGES ON sales.* FROM 'sales_rw'@'%'; SHOW GRANTS FOR 'sales_rw'@'%';
- 创建与全权:
- PostgreSQL
- 创建与能力:
CREATE USER sqladmin WITH PASSWORD 'P@ssw0rd'; ALTER ROLE sqladmin WITH CREATEDB CREATEROLE INHERIT LOGIN; - 库/模式/表:
GRANT ALL PRIVILEGES ON DATABASE sales TO sqladmin; GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO sqladmin; GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO sqladmin; - 撤销:
REVOKE ALL PRIVILEGES ON DATABASE sales FROM sqladmin;
- 创建与能力:
- SQL Server
- 服务器级:
CREATE LOGIN sqladmin WITH PASSWORD = 'P@ssw0rd'; ALTER SERVER ROLE sysadmin ADD MEMBER sqladmin; - 库级:
USE sales; CREATE USER sqladmin FOR LOGIN sqladmin; ALTER ROLE db_owner ADD MEMBER sqladmin;(只读/只写可用db_datareader/db_datawriter)
- 服务器级:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SQLAdmin如何进行权限管理
本文地址: https://pptw.com/jishu/763418.html
