簡體   English   中英

如何在 jupyter 筆記本中使用 SQLAlchemy 授予對 DB2 表的訪問權限

[英]How to grant access privileges to DB2 table using SQLAlchemy in a jupyter notebook

我已經按照幾個示例在 python jupyter 筆記本中使用 SQLAlchemy 創建和刪除 DB2 表。 這很好用。 但是創建表后,我需要設置權限以便其他人可以查看它。 我使用此代碼從 Pandas dataframe "df" 創建一個新表

from sqlalchemy import create_engine, text
engine = create_engine(r"...")

df.to_sql(name='MYTABLE', schema='MYSCHEMA', con=engine, if_exists='replace', dtype=dashdb_typemap, index=False)

我可以使用以下代碼很好地刪除表格:

with engine.connect() as con:
    con.execute('DROP TABLE MYSCHEMA.MYTABLE')

但是這些都不能設置權限:

with engine.connect() as con:
    con.execute('GRANT ALL ON MYSCHEMA.MYTABLE TO PUBLIC')

with engine.connect() as con:
    con.execute(text('GRANT ALL ON MYSCHEMA.MYTABLE TO PUBLIC'))

我可以在 QMF 中運行 SQL 並且工作正常。 它似乎在筆記本上不起作用。 我想知道是否有人看到我需要糾正的缺陷?

謝謝

可能與事務隔離有關,在授予/撤銷之前/之后嘗試顯式事務控制,或配置為自動提交

with engine.connect() as con:
    con.execute('COMMIT')
    con.execute('GRANT ALL ON MYSCHEMA.MYTABLE TO PUBLIC')
    con.execute('COMMIT')

在本地 Db2-LUW 上為我工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM