连接已有数据库 如果您已有独立运行的数据库,可参考本文档进行配置。
⚠️ 权限说明:本教程所教的用户创建均以root/超级用户权限为模板创建的用户(避免不必要的权限问题)。如您有权限精细化控制的需求,请自行调整授权语句。
数据库连接客户端推荐
推荐使用 Navicat Premium 17 Lite(登录后免费使用)
命令在哪执行?
MySQL 数据库操作 语法参考 操作语法查看用户SELECT user, host FROM mysql.user;创建用户CREATE USER '用户名'@'host' IDENTIFIED BY '密码';删除用户DROP USER '用户名'@'host';授权GRANT 《权限》 ON 《库名》.《表名》 TO '用户名'@'host';权限说明ALL全部权限SELECT查询INSERT插入UPDATE更新DELETE删除💡 库名或表名可以使用 * 通配符表示所有库或所有表
步骤 1:创建数据库(使用 Navicat)
💡 为什么选择 UTF8MB4 字符集?
UTF8:支持中文等多语言字符识别MB4:支持存储 emoji 表情符号(标准 UTF8 只支持 3 字节字符,MB4 支持 4 字节)步骤 2:创建用户 sqlCREATE USER '《用户名》'@'%' IDENTIFIED BY '《密码》';示例(创建用户 danmuapi,密码 your_password):
sqlCREATE USER 'danmuapi'@'%' IDENTIFIED BY 'your_password';步骤 3:授权 sqlGRANT ALL ON 《库名》.* TO '《用户名》'@'%';示例(授权用户 danmuapi 对数据库 danmuapi 的全部权限):
sqlGRANT ALL ON danmuapi.* TO 'danmuapi'@'%';刷新权限使其生效:
sqlFLUSH PRIVILEGES;PostgreSQL 数据库操作 语法参考 操作语法创建用户CREATE USER 《用户名》 WITH PASSWORD '《密码》';授权GRANT 《权限》 ON 《对象类型》 《对象名称》 TO 《用户名》;权限说明
权限说明ALL PRIVILEGES全部权限SELECT查询数据INSERT插入新数据UPDATE修改现有数据DELETE删除数据CREATE创建新对象CONNECT连接到数据库USAGE使用模式或序列EXECUTE执行函数或过程PostgreSQL 对象层级结构
PostgreSQL 实例 → 数据库 (DATABASE) → 模式 (SCHEMA) → 对象对象英文表TABLE视图VIEW序列SEQUENCE函数FUNCTION类型TYPE对象类型参考
对象类型对象名称格式是否必需模式前缀完整示例DATABASEdatabase_name❌ 不需要GRANT CONNECT ON DATABASE company TO user1;SCHEMAschema_name❌ 不需要GRANT USAGE ON SCHEMA hr TO user1;TABLE[schema_name.]table_name⚠️ 推荐使用GRANT SELECT ON TABLE public.employees TO user1;ALL TABLES IN SCHEMAschema_name✅ 必需GRANT SELECT ON ALL TABLES IN SCHEMA public TO user1;ALL SEQUENCES IN SCHEMAschema_name✅ 必需GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO user1;ALL FUNCTIONS IN SCHEMAschema_name✅ 必需GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA utils TO user1;步骤 1:创建用户 sqlCREATE USER 《用户名》 WITH PASSWORD '《密码》';示例(创建用户 danmuapi,密码 your_password):
sqlCREATE USER danmuapi WITH PASSWORD 'your_password';步骤 2:创建数据库(使用 Navicat)
💡 所有者:选择步骤 1 创建的用户
步骤 3:授权 3-1. 授予数据库连接权限
sqlGRANT CONNECT ON DATABASE 《数据库名》 TO 《用户名》;3-2. 授予模式使用权限
sqlGRANT USAGE ON SCHEMA public TO 《用户名》;3-3. 授予现有表的所有权限
sqlGRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO 《用户名》;3-4. 授予现有序列的所有权限(重要,用于自增字段)
sqlGRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO 《用户名》;3-5. 授予现有函数的执行权限
sqlGRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO 《用户名》;3-6. 设置默认权限(对新创建的对象生效)
sqlALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO 《用户名》;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON SEQUENCES TO 《用户名》;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT EXECUTE ON FUNCTIONS TO 《用户名》;3-7.(可选)允许用户在模式中创建对象
sqlGRANT CREATE ON SCHEMA public TO 《用户名》;