pypyodbc 从 python 在 netezza 数据库中创建存储过程的错误
Posted
技术标签:
【中文标题】pypyodbc 从 python 在 netezza 数据库中创建存储过程的错误【英文标题】:error of creating a stored procedure in netezza database from python by pypyodbc 【发布时间】: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.')
如何获得许可?
谢谢!
【问题讨论】:
【参考方案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>;
希望这会有所帮助。
【讨论】:
以上是关于pypyodbc 从 python 在 netezza 数据库中创建存储过程的错误的主要内容,如果未能解决你的问题,请参考以下文章
怎样在Anaconda中的某一个环境中安装Python的相关包(pypyodbc)
我可以在 Python 的 Access 数据库中同时使用本地和 ODBC 链接表吗?
如何在 Python 上使用 Windows Auth 登录 MSSQL?