Auto-sync: 2026-04-22 04:02
This commit is contained in:
44
wiki/concepts/用户权限.md
Normal file
44
wiki/concepts/用户权限.md
Normal 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]] — 权限配置实践
|
||||
Reference in New Issue
Block a user