如何让一个组里的用户可以拥有对某个数据库里所有的表sel/ins/upd/del/rul ()权限?   
  在帮助里我看到的是grant的语法只可以对某个表授予权限,我想一次性授予某个用户对数据库所有表所有权限。
在pgadmin里试了很多次赋权向导,只能给public赋权其他的不行

解决方案 »

  1.   


    grant all privileges on 数据库名.* to 'username'@'%' identified by 'password';
      

  2.   

    GRANT ALL ON SCHEMA schemaname TO userid;
      

  3.   


    ERROR:  syntax error at or near "TO"
    LINE 1: grant all privileges on database1.* TO User1 identified by '...
                                              ^********** 错误 **********ERROR: syntax error at or near "TO"
    SQL 状态: 42601
    字符:35
      

  4.   

    你的可以执行,但表的权限没有赋予到用户。一用那个新用户访问 就警告说拒绝访问某某表。我的postgresql版本是 8.4
      

  5.   

    postgresql只能一个表一个表的授权,是很麻烦。
    有客户端工具EMS,里面有这功能
      

  6.   

    CREATE USER user WITH PASSWORD 'pass';
    CREATE DATABASE yourdb;
    GRANT ALL PRIVILEGES ON DATABASE yourdb to user;
      

  7.   

    首先登陆用root
     授权
    GRANT ALL PRIVILEGES ON DATABASE yourdb to user;
    最后重启下服务
      

  8.   

    to zhoupuyue:
    你的可以执行,但还是用户不能访问该数据库下的表。(同二楼)
    ERROR:  permission denied for relation table1********** 错误 **********ERROR: permission denied for relation table1
    SQL 状态: 42501
      

  9.   

    to zhoupuyue: 
    照你的语句执行下去的话。
    如果用新用户创建新表,当然可以查询这个新建的表。
    但对原来已经存在的表没有查询权限。
    你可能没理解我的意思。
      

  10.   

    这样的操作只能一行一行SQL来加入,建议你安装pgAdmin。或直接到EnterpriseDB下载Postgres Plus Standard Server 8.4 RC2,进行使用。
    此发行版本已经集成PostgreSQL 8.4、pgAdmin等多个组件,同时有Windows、Linux 32/64bit版本选择,安装及使用都相对方便。http://www.enterprisedb.com/products/download.do
      

  11.   

    试了几次pgAdmin III的赋权向导,又下载了个ems manager 2007 for postgresql 用它的赋权工具,
    看来还是一个个表赋权,只不过ems的是自动生成赋权语句,和pgAmin III赋权向导一样,不同的是能给除public外的用户或组生成赋权语句。