CREATE USER
command with a username and password. Then grant necessary privileges using GRANT
statements for database access and operations.,Create a new database user by connecting with admin credentials and executing a CREATE USER
statement specifying the username and password. Assign appropriate privileges using the GRANT
command.MySQL/MariaDB 创建用户
-
登录数据库
使用 root 账户连接数据库:mysql -u root -p
-
创建用户并设置密码
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'StrongP@ssw0rd123!';
'new_user'
:用户名,'localhost'
表示仅限本地访问(远程访问需替换为 )。'StrongP@ssw0rd123!'
:密码需包含大小写字母、数字和符号(符合OWASP标准)。
-
授予权限(示例)
GRANT SELECT, INSERT ON db_name.* TO 'new_user'@'localhost'; FLUSH PRIVILEGES; -- 刷新权限生效
- 权限范围需遵循最小化原则(如仅开放必要表的
SELECT
权限)。
- 权限范围需遵循最小化原则(如仅开放必要表的
PostgreSQL 创建用户
-
登录并切换角色
sudo -u postgres psql
-
创建用户与密码
CREATE USER new_user WITH PASSWORD 'Secure!Pass456';
-
分配权限
GRANT CONNECT ON DATABASE target_db TO new_user; GRANT USAGE ON SCHEMA public TO new_user; GRANT SELECT ON ALL TABLES IN SCHEMA public TO new_user;
SQL Server 创建用户
-
通过 SQL 命令创建
在 SSMS 或命令行执行:USE master; CREATE LOGIN new_user WITH PASSWORD = 'P@ssw0rd!2025'; USE target_database; CREATE USER new_user FOR LOGIN new_user;
-
图形界面操作
- 进入 SSMS → 安全性 → 登录名 → 右键新建登录名 → 设置密码和默认数据库。
- 在目标数据库的“安全性-用户”中关联登录名。
Oracle 创建用户
-
管理员登录
CONNECT SYS AS SYSDBA;
-
创建用户并分配表空间
CREATE USER new_user IDENTIFIED BY "Oracle_P@ss123" DEFAULT TABLESPACE users QUOTA 100M ON users;
-
授权基础权限
GRANT CONNECT, RESOURCE TO new_user;
安全最佳实践
-
密码策略
- 长度 ≥12 位,混合大小写、数字、特殊符号。
- 定期更换(如90天),禁止复用旧密码。
-
权限控制原则
- 最小权限:仅授予完成工作所需的最低权限(如只读账户禁止
DROP
)。 - 角色分组:通过角色批量管理权限(例如创建
read_only_role
统一分配)。
- 最小权限:仅授予完成工作所需的最低权限(如只读账户禁止
-
审计与监控
- 启用数据库审计日志(如 MySQL 的
general_log
)。 - 定期审查用户权限:
SHOW GRANTS FOR 'new_user'@'localhost'; -- MySQL示例
- 启用数据库审计日志(如 MySQL 的
-
防注入措施
避免动态拼接 SQL 创建用户,优先使用参数化查询。
常见问题解答
-
Q:创建用户后无法登录?
A:检查主机限制(如 MySQL 的'@'localhost'
与远程IP冲突)、防火墙或密码错误。 -
Q:如何删除用户?
A:MySQL:DROP USER 'user'@'localhost';
PostgreSQL:DROP USER user_name;
-
Q:多数据库权限如何分配?
A:通过角色统一管理(如 PostgreSQL 的CREATE ROLE
),减少重复操作。
引用说明:本文操作基于官方文档最佳实践,参考来源:
- MySQL 8.0 Security Guidelines
- PostgreSQL GRANT 手册
- Microsoft SQL Server 权限管理
- Oracle Database Security Checklist
实际执行时请结合具体版本调整命令,生产环境建议先在测试库验证。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/39603.html