square.metadata.create_all

时间:2015-08-10 19:39:04

标签: python-2.7 sqlalchemy

有没有办法在使用sqlalchemy创建新表时授予权限? 我现在看到的唯一方法是执行一个sql“GRANT ALL ON TABLE blabla给任何人;”每次我做Base.metadata.create_all(...)

1 个答案:

答案 0 :(得分:0)

我将PostgreSQL数据库与psycopg2后端一起使用。在create_all之后,我执行:

import models
from psycopg2 import sql

for table in models.Base.metadata.tables.values():
    connection.connection.cursor().execute(
        sql.SQL('GRANT ALL PRIVILEGES ON {} TO {}').format(
            sql.Identifier(table.name), sql.Identifier('bob')))