我使用了一个用户——pgadmin,它是rds_superuser的成员,
在“postgres”数据库中创建了一个计划作业。
cron.schedule_in_database('my_cron', '*/30 * * * *', 'INSERT INTO test(id) VALUES (2);', 'mydb');
它每 30 分钟将一条记录插入到不同数据库“mydb”中的表“test”中。我可以看到计划的作业正在运行,因为记录正在插入测试表中。
如果我使用 pgadmin 用户连接到 postgres 数据库,我可以查询 cron.job 和 cron.job_run_details 并查看结果。
但是如果我使用 my_user 连接到 postgres 数据库(它不是 rds_superuser 的成员),则针对 cron.jon 和 cron.job_run_details 的选择查询不会返回任何内容。
只是想知道,为什么 cron 作业已计划并运行,但不是 postgres 数据库中的每个用户都可以查看 cron.jon 和 cron.job_run_details 中的数据?
谢谢。
医生说
为了安全起见,作业在数据库中执行,其中 cron.schedule 函数的调用权限与 当前用户。另外,用户只能看到自己的职位 在 cron.job 表中。