Permissions Informix,在所有表上授予select
有了Informix,我可以Permissions Informix,在所有表上授予select,permissions,informix,grant,Permissions,Informix,Grant,有了Informix,我可以在如下表上授予select grant select on 'dba'.mytable to someuser as dba; 如何在数据库中的所有表上执行此操作?没有简单的方法(在SQL标准或Informix中),但通常不需要,因为默认情况下通常会授予特定的权限。然而,我想事实上你也想做更多的一般性操作,并且想知道有什么选择 根据您的目标和系统设置方式,您可以通过各种方式实现目标 暴力-问题的直接答案 从中获取输出并将其输入到程序中。我将其用于作业,尤其是因为它不
在如下表上授予select
grant select on 'dba'.mytable to someuser as dba;
如何在数据库中的所有表上执行此操作?没有简单的方法(在SQL标准或Informix中),但通常不需要,因为默认情况下通常会授予特定的权限。然而,我想事实上你也想做更多的一般性操作,并且想知道有什么选择 根据您的目标和系统设置方式,您可以通过各种方式实现目标 暴力-问题的直接答案 从中获取输出并将其输入到程序中。我将其用于作业,尤其是因为它不会生成不需要的输出:
sqlcmd -d dbname -e "
SELECT 'GRANT SELECT ON \"' || TRIM(owner) || '\".' || TRIM(tabname) ||
' TO someuser AS dba;'
FROM "informix".systables
WHERE tabid >= 100;" |
sqlcmd -d dbname -f -
在外壳周围工作需要额外的反斜杠。“-f-
”选项并不是严格必需的,但要明确第二个SQLCMD将从标准输入读取。如果您使用DB访问,您必须担心它生成的措辞——这就是我首先编写SQLCMD的原因
显然,这个解决方案可以很容易地编写脚本并加以推广——您只需小心使用引号
使用角色
另一个选项是创建一个具有所需所有权限的角色,然后根据需要将该角色授予用户。这样做的缺点是,您的软件需要设置角色,以便连接的人拥有该权限。一种可能是将“仅选择”角色设置为每个用户的默认角色
使用Server Studio Java Edition
具有权限管理工具以简化此任务
也使用开放式管理
具有帮助权限管理的工具
sqlcmd -d dbname -e "
SELECT 'GRANT SELECT ON \"' || TRIM(owner) || '\".' || TRIM(tabname) ||
' TO someuser AS dba;'
FROM "informix".systables
WHERE tabid >= 100;" |
sqlcmd -d dbname -f -