我正在尝试在应用程序中获取元数据。为此,我需要在informix中列出所有模式及其元数据。我找不到任何可以列出所有模式的系统表(如oracle)。
我看到了这个question,但没有得到想要的结果。 有关systables和sysusers
的信息,请访问informix的官方网站。select username,usertype from sysusers;
-获取具有数据库级别特权的用户或角色
select distinct owner from systables;
-获取包含数据库对象的架构。
此外,sysmaster
数据库的systables
和sysusers
中到底存在什么?什么时候使用它们?
答案 0 :(得分:1)
Informix数据库中没有实际的模式对象(您不能授予模式特权)。有各种类型的“对象”,每个对象都有一个所有者。如果确实要,您可以认为所有者是架构。在新创建的Informix(版本14.10.FC1)数据库上的目录表上进行简单搜索,我们得到:
SELECT
t.tabname,
c.colname
FROM
systables AS t
INNER JOIN
syscolumns AS c
ON
t.tabid = c.tabid
WHERE
c.colname = 'owner'
;
tabname systables
tabname sysindices
tabname syssynonyms
tabname syssyntable
tabname sysconstraints
tabname sysprocedures
tabname sysopclstr
tabname systriggers
tabname sysobjstate
tabname sysxtdtypes
tabname syscasts
tabname sysopclasses
tabname sysaggregates
tabname sysdomains
tabname sysindexes
还有更多,这只是目录表的快速浏览。因此,您的架构信息分布在多个目录中。
关于sysmaster数据库,它是一个数据库(尽管是一个特殊的数据库),因此它具有自己的目录表,就像其他Informix数据库一样。