我想知道为什么允许新创建的用户在连接到数据库后创建表.我有一个数据库,project2_core:

postgres=# \l

List of databases

Name | Owner | Encoding | Collate | Ctype | Access privileges

---------------+--------------+-----------+-------------+-------------+-------------------------------

postgres | postgres | SQL_ASCII | C | C |

project2_core | atm_project2 | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | project2=CTc/project2

template0 | postgres | SQL_ASCII | C | C | =c/postgres +

| | | | | postgres=CTc/postgres

template1 | postgres | SQL_ASCII | C | C | =c/postgres +

| | | | | postgres=CTc/postgres

(5 rows)

到现在为止还挺好.现在我创建一个用户:

postgres=# CREATE ROLE dietrich ENCRYPTED PASSWORD 'md5XXX' LOGIN NOCREATEROLE NOCREATEDB NOSUPERUSER

好的.当我尝试连接到数据库时,不允许用户这样做:

$psql -h localhost -p 5432 -U dietrich -W project2_core

Password for user dietrich:

psql: FATAL: permission denied for database "project2_core"

DETAIL: User does not have CONNECT privilege.

这是我的预期.现在奇怪的东西开始了.我授予用户CONNECT:

postgres=# GRANT CONNECT ON DATABASE project2_core TO dietrich;

GRANT

postgres=# \l

List of databases

Name | Owner | Encoding | Collate | Ctype | Access privileges

---------------+--------------+-----------+-------------+-------------+-------------------------------

postgres | postgres | SQL_ASCII | C | C |

project2_core | atm_project2 | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | project2=CTc/project2+

| | | | | dietrich=c/project2

template0 | postgres | SQL_ASCII | C | C | =c/postgres +

| | | | | postgres=CTc/postgres

template1 | postgres | SQL_ASCII | C | C | =c/postgres +

| | | | | postgres=CTc/postgres

(5 rows)

在没有任何进一步授权的情况下,允许用户创建表:

$psql -h localhost -p 5432 -U dietrich -W project2_core

Password for user dietrich:

psql (9.2.3)

SSL connection (cipher: DHE-RSA-AES256-SHA,bits: 256)

Type "help" for help.

project2_core=> create table adsf ();

CREATE TABLE

project2_core=> \d

List of relations

Schema | Name | Type | Owner

--------+------+-------+----------

public | adsf | table | dietrich

(1 row)

在我明确地对模式进行GRANT USAGE然后在表上进行GRANT SELECT之前,我原本以为不允许用户做任何事情.

我的错误在哪里?我究竟做错了什么?我怎样才能实现我想要的(在明确授予她适当权利之前,不允许新用户做任何事情.

我迷路了,非常感谢你的帮助:)

编辑按照@ daniel-verite的建议,我现在在创建数据库后立即撤销所有操作.用户dietrich不允许再创建表.好.但是:现在,也不允许数据库的所有者project2创建表.即使在数据库上发布GRANT ALL PRIVILEGES project2_core TO project2并在SCHEMA public TO project2上发布GRANT ALL PRIVILEGES,我收到错误错误:没有选择要创建的模式,以及当我专门尝试创建表时public.WHATEVER();,我得到错误:架构公众的权限被拒绝.我究竟做错了什么?

postgresql兴建用户_postgresql – 为什么允许新用户创建表?相关推荐

  1. linux中国用户,Linux中国 适合新用户的Linux

    这个争论无疑给许多Linux用户带来了麻烦.争论的焦点一般不是哪个发行版是真正最适合新用户的,而是哪个发行版受这些争论者的喜爱.如果我们撇开个人喜爱,我们会看到更清楚的一面.但即使这样,明确的结论也会 ...

  2. 怎么给当前计算机添加一个用户,电脑如何设置新用户 电脑创建新用户的方法...

    今天给大家带来电脑如何设置新用户,电脑创建新用户的方法,让您轻松解决问题. 有些时候我们为了能更为灵活的管理电脑使用情况,我们可以给电脑设置不同的用户,那么怎么给电脑设置新用户呢?下面是学习啦小编整理 ...

  3. 计算机怎样禁止再添加新用户,Win10如何添加新用户?

    很多用户在使用Win10系统的时候,不想和其它人共同使用同一个用户,因此就选择了创建新用户,那么Win10如何添加新用户呢?针对此问题,下面小编为大家介绍一下Win10添加新用户的操作方法. 方法步骤 ...

  4. linux7给用户授权,CentOS7 添加新用户并授权

    1.创建用户 useradd hxyz 或者增加-m:创建用户主目录 useradd -m hxyz 2.设置密码 passwd qwerasdf 3.授权sudo权限 查找sudoers文件位置 w ...

  5. postgresql 集合类型_PostgreSQL 分组集合新功能(GROUPING SETS,CUBE,ROLLUP)

    PostgreSQL 分组集合新功能(GROUPING SETS,CUBE,ROLLUP) 实验环境 操作系统:windows 10 家庭中文版 数据库系统: PostgreSQL 9.6.2 说明 ...

  6. 视频场景下,新用户的推荐策略怎么做?

    本文由作者 大橘子-huiqing 发布于社区 伴随着拉新成本越来越高,对于以视频为载体的内容平台而言,就需要更加细致的为新用户提供起到留存价值的内容,将新用户有效地激活.留存,让自己少花一些冤枉钱. ...

  7. Centos 手工创建新用户

    当我们要创建一个用户时,通常使用useradd命令就可以自动创建了一个用户:实际上,在linux下,一切皆文件,设置好几个文件,也是可以创建出一个用户: 文件如下: /etc/passwd  :用户 ...

  8. 6远程桌面连接不上_windows server2008 远程桌面 创建新用户和多用户登录

    1.怎么让Windows2012和Windows2008多用户同时远程 Windows2008和Windows2012服务器版本操作系统默认情况下只能支持一个用户远程.如果第二个人远程上去之后会直接把 ...

  9. Linux内创建新用户,linux下手工创建新用户

    当我们要创建一个用户时,通常使用useradd命令就可以自动创建了一个用户:实际上,在linux下,一切皆文件,设置好几个文件,也是可以创建出一个用户: 文件如下: /etc/passwd  :用户 ...

最新文章

  1. SDwebimage使用原理(转载)
  2. 币圈老人李启元站队BCH,背后的原因是什么?
  3. 开发日记-20190327 关键词 intant run原理
  4. idea 设置识别ini文件
  5. android art虚拟机安装,Android中art虚拟机启动流程
  6. 京东商城确认购买jingdong.com域名
  7. linux 目录挂载
  8. 考研c 语言程序设计题库,温州大学c语言程序设计考研复试核心题库(23页)-原创力文档...
  9. SQL时间相关 - SQL日期,时间比较(转)
  10. php本地如何开启websocket遇到的坑
  11. 新编密码学——分组密码
  12. 外贸公司申请一个企业邮箱,国外邮箱大全对比
  13. 美团点评 2019校招 前端方向职位试卷在线考试
  14. 【见闻录系列】浅谈搜索系统与推荐系统的一点区别
  15. 查询一整天的数据 0点0分0秒之后 23点59分59秒之前
  16. VMware 15.5.7 的下载与安装
  17. 美国计算机教育方向相关的论文题目,浅谈美国大学计算机教育论文
  18. python字符串是啥_python字符串表示什么?
  19. ORB-SLAM2多线程用法总结
  20. 二级路由器下的pc如何使用映射网络驱动器的方式添加一级路由器下nas共享的文件夹

热门文章

  1. html input format,html - Input format smpte-timecode - Stack Overflow
  2. 深圳市腾讯计算机系统有限公司末日沙城,末日沙城腾讯版
  3. OpenCV系列之傅里叶变换 | 三十
  4. 掘金系统源码搭建教程
  5. AI在招聘领域的这些应用,你会是被第一轮淘汰的吗
  6. 2022-4-1 Leetcode 面试题10.01合并排序的数组
  7. 学习Linux命令(14)
  8. 2022-3-17 MIT 6.828 Lab 3: User Environments | Part A: User Environments and Exception Handling
  9. 计算机网络软考基础知识,软考基础知识专题5:计算机网络知识
  10. 计算机毕业论文选题微信小程序毕业设计论文SSM项目物流仓库平台+后台管理系统|前后分离VUE[包运行成功]