postgresql数据库怎么更改其中一个数据库的拥有者?
2017-11-28 00:00
225 查看
现在adempiere数据库的拥有者是postgres,想把adempiere数据库的拥有者改成用户adempiere(该用户已经创建好了),请问怎么改?
解决方案:
#创建用户 John 并设置密码为 123456
postgres=# CREATE USER John WITH PASSWORD '123456';
#赋予用户John testdb数据库的权限
postgres=# GRANT ALL PRIVILEGES ON DATABASE testdb TO John;
新创建的用户可以连接到数据库,但不能做其他任何操作,如从一个表中检索数据。
Pg权限分为两部分,一部分是“系统权限”或者数据库用户的属性,可以授予role或user(两者区别在于login权限);一部分为数据库对象上的操作权限。对超级用户不做权限检查,其它走acl。对于数据库对象,开始只有所有者和超级用户可以做任何操作,其它走acl。
当很多用户使用时,需要对每一个人都授权是件比较麻烦的事情,用户组就是起到将很多用户拉到一个组里,对这个用户组授权来解决每个用户都需要授权的作用。
创建组用户,一般不让他登录:
create role group_name;
增加组用户:
grant group_name to role1;
grant group_name to role2;
删除组用户
revoke group_name from role1;
revoke group_name from role2;
解决方案:
alter database adempiere owner to adempiere;
将 eric提升为 superuser: ALTER USER eric WITH SUPERUSER; 【注意,这里不要用 GRANT ALL PRIVILEGES ON DATABASE testdb to eric; 因为 "ALL" 不包括 SELECT 权限,后果是 eric 用户依然没有权限读数据库,pg_dump后只是空记录。】
#创建用户 John 并设置密码为 123456
postgres=# CREATE USER John WITH PASSWORD '123456';
#赋予用户John testdb数据库的权限
postgres=# GRANT ALL PRIVILEGES ON DATABASE testdb TO John;
新创建的用户可以连接到数据库,但不能做其他任何操作,如从一个表中检索数据。
Pg权限分为两部分,一部分是“系统权限”或者数据库用户的属性,可以授予role或user(两者区别在于login权限);一部分为数据库对象上的操作权限。对超级用户不做权限检查,其它走acl。对于数据库对象,开始只有所有者和超级用户可以做任何操作,其它走acl。
当很多用户使用时,需要对每一个人都授权是件比较麻烦的事情,用户组就是起到将很多用户拉到一个组里,对这个用户组授权来解决每个用户都需要授权的作用。
创建组用户,一般不让他登录:
create role group_name;
增加组用户:
grant group_name to role1;
grant group_name to role2;
删除组用户
revoke group_name from role1;
revoke group_name from role2;
相关文章推荐
- 在一个窗口中更改了数据库内容,在父窗口中需要刷新 以显示最新的数据库内容
- -在数据库中创建一个主键自增列的表,而且其中一个列是唯一列,不存在重名
- 一个网站要提供很多种商品和信息 当然就有很多分类了 请问数据库怎么设计阿?
- 怎么编程你输进去一个数据 然后输出的会是一组数列 其中前两个数字之和等于第三个数字。例如你输入7, 输出会显示1,2,3,5,8,13,21(每行显示一个数)
- 更改一个没有主键的oracle表中并不是完全相同的其中一条语句
- 同一个数据库的一个表的数据怎么导入到另一个表?
- SQL 中怎么查询一个数据库中一共有多少个表
- 两个div,知道其中一个div的高度或宽度,怎么使另一个div占满剩余的部分.
- 计数排序——有一个数组,里面是从1到1,000,000的整数,其中有一个数字出现了两次,你怎么找出那个重复的数字?
- PostgreSQL数据库管理工作中,定期vacuum是一个重要的工作.
- mysql插入一行数据,其中一个值为当前该列的最大值,怎么实现?
- 在数据库里面有这么一个表:用m代表男,用f代表女,现在我要输出格式为中文的:男和女,sql语句该怎么写
- 不修改 GridView的HeaderText,其中数据库中的头标题是:custName,custId.这样的字符同样显示在GridView中,应该如何更改才能让GridView的头一行显示:姓名,编号而不是显示custName,custId
- SQL 中怎么查询一个数据库中一共有多少个表
- 同一个数据库的一个表的数据怎么导入到另一个表
- sql语句怎么在一个数据库中查找拥有同一字段名的所有表
- 查询一个数据库中有几个表引用了其中某个特定表的主键做为其外键
- 数据库设计中一个矛盾:数据库外键,用还是不用?你怎么看.?
- iOS 怎么将自己创建的一个对象存入数据库sqlite,例如:Person??
- 【面试题目】你有12个硬币,其中有一个的重量与其他的不一样,有三次使用测量平衡的机会来找出重量不同的那个。该怎么做呢?