小编Chr*_*ian的帖子

为什么 ALTER DEFAULT PRIVILEGES 没有按预期工作?

我有 2 个用户。User1 是写作者,是写作角色的成员,而 User2 是“读者”角色的成员。

读者角色获得后续权限:

GRANT CONNECT ON DATABASE to reader
GRANT USAGE ON SCHEMA x TO reader
Run Code Online (Sandbox Code Playgroud)

我希望读者能够从给定的模式中读取/选择所有现有的和新的表,但使用

ALTER DEFAULT PRIVILEGES IN SCHEMA x GRANT SELECT ON TABLES TO reader;
Run Code Online (Sandbox Code Playgroud)

不起作用。用户 2 将不会获得对用户 1/写入者角色创建的新表的任何权限。

使用:

ALTER DEFAULT PRIVILEGES FOR ROLE writer IN SCHEMA x GRANT SELECT ON TABLES TO reader;
Run Code Online (Sandbox Code Playgroud)

也不行。我必须明确指出该表的所有者。为了解决这个问题我不得不使用:

ALTER DEFAULT PRIVILEGES FOR ROLE User1 IN SCHEMA x GRANT SELECT ON TABLES TO reader;
Run Code Online (Sandbox Code Playgroud)

我实际上不希望这样做,因为除了 User1 之外可能还有其他用户也会将表发布到该架构中。

我错过了什么吗?

postgresql privileges database-administration

8
推荐指数
0
解决办法
4555
查看次数

如何使用气流来编排简单的 pandas etl python 脚本?

我喜欢气流的想法,但我停留在基础知识上。从昨天开始,我在 vm ubuntu-postgres 解决方案上运行了气流。我可以看到仪表板和示例数据:))我现在想要的是将用于处理原始数据的示例脚本迁移到准备好的数据。

假设你有一个 csv 文件的文件夹。今天我的脚本迭代它,将每个文件传递到一个将被转换为 df.txt 的列表。之后,我准备它们的列名称并进行一些数据清理并将其写入不同的格式。

1:目录中文件的pd.read_csv

2:创建一个df

3:干净的列名

4:干净的值(与 stp 3 并行)

5:将结果写入数据库

我该如何根据气流组织我的文件?脚本应该是什么样子?我是否传递单个方法、单个文件,还是必须为每个部分创建多个文件?我现在缺乏基本概念:(我读到的关于气流的所有内容都比我的简单情况复杂得多。我正在考虑放弃气流以及 Bonobo、Mara、Luigi,但我认为气流是值得的?!

python etl pandas airflow airflow-scheduler

3
推荐指数
2
解决办法
1万
查看次数

如何用空字典替换“无”作为字典值?

我正在解析一个复杂的 json 字符串,并在我的班级中使用嵌套字典和一些嵌套的 dic.get() 函数。

当更高级别的键不存在时,我不想收到 None ,而是想找到一个空字典,以便我的代码 (dict.get()) 继续工作。

现在我想用空字典 {} 替换所有名为 None 的字典值,但我没有找到任何好的解决方案。

所以基本上我想要这个:

{'a': {},
 'b': 'Text',
 'c': 5,
 'd': {'d1': {}}
Run Code Online (Sandbox Code Playgroud)

但遗憾的是:

{'a': None,
 'b': 'Text',
 'c': 5,
 'd': {'d1': None}
Run Code Online (Sandbox Code Playgroud)

python json dictionary

1
推荐指数
1
解决办法
525
查看次数