【问题标题】:How can I get ddl of granted objects in SYBASE ASE 15.5?如何在 SYBASE ASE 15.5 中获得授予对象的 ddl?
【发布时间】:2016-04-15 09:42:21
【问题描述】:

我正在尝试创建一个将为给定架构导出 ddl 的应用程序。

我使用 ddlgen 命令在 java 中创建了示例。在其中,我可以获得已记录模式的所有对象的 ddl。 命令是:

java -cp "C:/Users/admin/Desktop/lib/jconn4.jar;C:/Users/admin/Desktop/lib/dsparser.jar;C:/Users/admin/Desktop/lib/DDLGen.jar" com.sybase.ddlgen.DDLGenerator -Usybase1 -Psybase1 -Sserver-name  -Ddatbase1  -Ooutput.sql

在上面的命令中,我需要提供用户名和密码。

现在我有第二个用户 sybase2,他是被授权者,sybase1 用户将所有对象的访问权限授予 sybase2 用户。这里我想从 sybase2 用户的账户中获取 sybase1 用户的 ddl。

我在 oracle 中做过同样的事情,我们有两个用户 user1 和 user2 。 user1 将访问所有对象的所有权限授予 user2。 我可以成功获取所有已授予对象的列表。

查询:-

select object_name from dba_objects where owner = 'user1';  

然后使用 get_ddl 函数,我得到所有对象的 ddl。

上面ddlgen的方法,我没有找到传递schema name的方法,我想得到ddl。

ddlgen 不支持这个吗? 如果没有,请建议我们以其他方式获取给定架构的 ddl。

我们也没有找到“如何创建除 'dbo' 之外的新架构?”

【问题讨论】:

  • 嗨,不要忘记投票/接受有用的答案。 :?)

标签: java oracle command sap-ase


【解决方案1】:

SAP/Sybase ASE 不使用 Oracle/Microsoft 实施的模式。

加入sysobjectssysusers可以找到数据库对象的拥有者

SELECT db_name()
     , su.name
     , so.type
     , so.name
 FROM sysusers su, sysobjects so
WHERE su.uid = so.uid
 AND su.name = "[name of user you are looking for]"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多