- 论坛徽章:
- 0
|
本帖最后由 longbow0 于 2010-06-04 12:31 编辑
pgsql 没有直接grant整个数据库的权限给一个账号的方法,只能对每个表逐一授权。当表很多时就带来了很大的困扰。下面是来自网上的一个方法。
>>> 原始网址
假设数据库为 testdb,有 schema public,foo,bar。要授权的账号是 tester,
- testdb=> SELECT 'GRANT ALL ON TABLE '||schemaname||'.'||tablename||' TO tester;'
- FROM pg_tables WHERE schemaname IN ('public', 'foo', 'bar')
- ORDER BY schemaname, tablename;
复制代码 将会产生一系列的 SQL 语句,
- GRANT ALL ON TABLE public.table1 TO tester;
- GRANT ALL ON TABLE public.table2 TO tester;
- ...
复制代码 复制并保存到文本文件中,如 grant.sql
然后,在终端里运行
- $ psql -d testdb < grant.sql
复制代码 完成。
此方法也可以推广到 view,sequence 和 function。 |
|