Auto-sync: 2026-04-22 04:02

This commit is contained in:
2026-04-22 04:03:04 +08:00
parent 24218550d2
commit de096f2f88
232 changed files with 16604 additions and 514 deletions

View File

@@ -0,0 +1,44 @@
# 用户权限
## Concept Information
- **Type**: Concept
- **Status**: Active
- **Source**: [[mysql-mariadb-数据库详细信息]]
## Definition
MariaDB/MySQL 使用 `username@host` 组合作为权限控制的基本单元,同一个用户名在不同主机来源下可以拥有完全不同的权限级别。
## Permission Model
| Host Pattern | Meaning |
|--------------|---------|
| `localhost` | 仅允许本机通过 socket 连接 |
| `127.0.0.1` | 仅允许本机通过 TCP/IP 连接 |
| `%` | 允许任意主机连接 |
| `192.168.1.%` | 允许指定网段连接 |
| `%.example.com` | 允许指定域名后缀连接 |
## Common Example
```sql
-- 本地管理员(仅本机 socket
CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';
-- 远程访问用户(任意主机)
CREATE USER 'shenwei'@'%' IDENTIFIED BY '!Abcde12345';
GRANT ALL PRIVILEGES ON *.* TO 'shenwei'@'%' WITH GRANT OPTION;
-- 限制特定网段
CREATE USER 'app'@'192.168.3.%' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'app'@'192.168.3.%';
```
## Key Principles
1. **最小权限**:只授予应用程序所需的最小权限
2. **来源隔离**:生产环境避免使用 `%` 通配符
3. **权限分离**:不同用途使用不同账户
## Related Concepts
- [[Socket 登录]] — 本地认证方式
- [[MariaDB]] — 用户权限配置示例
## Related Entities
- [[MariaDB]] — 权限配置实践