如何定义第二个postgres数据库并使之仅对特定用户可见

时间:2019-02-20 02:53:17

标签: python postgresql

我有一个主要的postgres数据库,我想创建第二个数据库来存储我的用户的计算结果。我的目标是当特定用户连接到第二个数据库时,他/她应该看不到其他数据库。

我用Flask Sqlalchemy创建了第一个。

不知道如何使用SQLAlchemy创建第二个数据库,我尝试了以下操作:

import psycopg2
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT 

con = psycopg2.connect(dbname='postgres',
      user='blabla', host='localhost',
      password='blabla123')

con.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT) 
cur = con.cursor()
dbname='dbname'
cur.execute("CREATE DATABASE %s  ;" %dbname )


user_sql="CREATE USER {} WITH PASSWORD '{}';".format('dodo','dodo123')
cur.execute(user_sql)
grant_sql="GRANT CONNECT ON DATABASE {} TO {} ".format(dbname,'dodo')
cur.execute(grant_sql)

我成功创建了数据库,但是当我使用该用户名/密码连接时,我仍然看到其他数据库及其表(当然,我仍然无法读取表)。

反正还有其他数据库吗?

0 个答案:

没有答案