sql - 使用 shell 脚本创建了一个数据库,但是不允许用户登录
问题描述
当我尝试启动我的 djangoRESTapi 时,我收到一条错误消息
FATAL: role "admin3" is not permitted to log in
每次我尝试使用 manage.py
当前脚本。
pg_ctl -D /usr/local/var/postgres stop
pg_ctl -D /usr/local/var/postgres start
psql -c "DROP DATABASE $sqlProject;"
psql -c "DROP ROLE $projectAdmin;"
#createdb -E UTF-8 $sqlProject
psql -c "CREATE DATABASE $sqlProject;"
psql -c "CREATE ROLE $projectAdmin WITH SUPERUSER PASSWORD '$projectPassword';"
psql -c "ALTER ROLE $projectAdmin SET client_encoding TO 'utf8';"
psql -c "ALTER ROLE $projectAdmin SET default_transaction_isolation TO 'read committed';"
psql -c "ALTER ROLE $projectAdmin SET timezone TO 'UTC';"
psql -c "GRANT ALL PRIVILEGES ON DATABASE $sqlProject TO $projectAdmin;"
psql -c "GRANT CONNECT ON DATABASE $sqlProject TO $projectAdmin;"
psql -c "\q"
关于修复的任何想法?
解决方案
我将它作为创建角色而不是创建用户。
这解决了我的问题。
推荐阅读
- javascript - 变量值在 scriptlet 中可用,但在 jsp 和 javascript 中不可用
- android - Android 设备屏幕截图,屏幕录制禁用
- ssl - 如何使用 ssh 从 Rancher 创建的 kubernetes 集群创建/获取 etcd 证书
- sql - 如何提取 XML 节点值?
- javascript - 遍历具有相同类的元素并删除它们
- javascript - 使用 HTML 和 JS 进行图像转换
- delphi - CompareStr() 函数将字符串与字符进行比较?
- python - 是否可以使用 setdefault 嵌套字典,附加到列表中?
- c# - 我们可以对我项目中的所有方法使用事务范围吗
- oracle - “缺少右括号”错误 - Oracle