【问题标题】:error of creating a stored procedure in netezza database from python by pypyodbcpypyodbc 从 python 在 netezza 数据库中创建存储过程的错误
【发布时间】:2015-01-14 17:37:05
【问题描述】:

我正在 win7 上的 Eclipse 中使用 python (pydev)。

我需要从 python (pypyodbc) 访问 netezza SQL 数据库来创建存储过程。

我可以从 IBM Aginity 工作台很好地创建存储过程。

但是,我从 python 执行此操作时出错。

  pypyodbc.Error: ('HY000', '[HY000] ERROR:  Creating procedure: permission denied.')

如何获得许可?

谢谢!

【问题讨论】:

    标签: python database stored-procedures netezza pypyodbc


    【解决方案1】:

    你可以通过任何一种方式获得许可-

    1) 让自己成为对象(数据库、表)的所有者,这将为您提供所有权限(包括创建/执行/更改函数/过程)。

    例如- 更改表的所有者 -

    => alter table <tbl_name> owner to <owner_name>;

    2) 管理员请求获得创建和执行程序所需的权限 -

    例如- 获取(数据库、表)的“执行”(对象权限)

    db.schema(admin/user with rights) => grant execute on <tbl_name/db_name> to <user>;
    

    例如- 获取“创建程序”(管理员权限)

    db.schema(admin/user with rights) =>  grant create procedure \
                                          in <[database_name.]schema_name | database_name.ALL | ALL.ALL> \
                                          to <user>;
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-18
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      • 2013-02-21
      相关资源
      最近更新 更多