想建一个用户,就有备份权限,没有查看存储过程的权限

Henry.6 2009-09-26 10:49:11

想建一个用户,就有备份单个数据库权限,没有查看存储过程内容的权限。
环境:win XP, postgresql 8.4

另外有没办法不装postgresql 8.4的情况下
运行pg_dump.exe 备份其他服务器上的数据??
在虚拟机上试过总是:“系统无法执行指定的程序。”
...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Henry.6 2009-09-28
  • 打赏
  • 举报
回复
to trainee:
在发这张贴之前我已经拜读并收藏了你的文章,由于文章是2008年发表的,我以为2009年pg会有些变化。
如果你有8.4已经diy过的程序 源码,你可不可以发到6rl@163.com?
trainee 2009-09-27
  • 打赏
  • 举报
回复
在postgresql下,存储过程的代码是任何人可读的,他是存在一个叫catalog.pg_proc系统表里
如果要让存储过程对某些人不可见
必须用
REVOKE ALL ON pg_catalog.pg_proc FROM PUBLIC -- 取消所有人(super除外)可读
再用
GRANT SELECT ON pg_catalog.pg_proc TO XXX -- XXX为可读的角色

但现在的矛盾是:
假如一个用户无法读存储过程,是无法备份数据库。
好在postgresql是开缘项目,可以自己DIY

参考我的DIY
http://blog.chinaunix.net/u/24767/

nianzhang747 2009-09-26
  • 打赏
  • 举报
回复
首先你的权限不是表级别也不是列级别的

是进程级别的 设置进程级别的权限
set('Execute','Alter Routine','Grant')
mysql中有这三个
是执行权限 但是你的具体的有备份缺没有查看的权限 好像很难设置

备份其他数据库的数据 首先你要保证是联通的 而且可以查看更新插入数据 :“系统无法执行指定的程序。” 这个错误好像是你本地的就不好用 更别说远程备份了

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧