我有一个与数据库交互的python应用程序(创建/删除表,插入/删除记录)。因此,它应该具有SQL管理工作室的高权限。
我想要做的是让应用程序能够与数据库进行交互,而不管用户是否允许。
我创建了一个应用程序角色并将其分配给应用程序。我知道应用程序角色已激活,因为它曾经导致一些问题(我可以解决)。
但我仍然有一个很大的问题,即应用仍然依赖于用户登录,因此任何拥有不足权限的人都无法使用该代码。
以下是与服务器建立连接的python代码的一部分:
server = '*****'
database = '*****'
driver = 'SQL+Server'
connection_string = 'mssql+pyodbc://%s/%s?driver=%s? trusted_connection=true' % (server, database, driver)
engine = create_engine(connection_string, pool_recycle=-1, echo=False)
metadata = MetaData(bind=engine)
Session = sessionmaker(bind=engine)
Session = sessionmaker(bind=engine)
session = Session()
role = 'Python_app'
role_password = '******'
session.execute("EXEC sp_setapprole '%s', '%s'" % (role, role_password))
On this link a screenshot of the application role can be found
我尝试了很多不同的东西,但我无法解决问题。 如果有人能指出我正确的方向,我会很高兴的。