[英]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.