Azure SQL 托管实例提供对来自可用性组的只读副本的访问(至少在特定层中)。
我正在为我们的应用程序编写一个测试脚本,以连接到读/写和只读连接,以证明一切正常运行。
我知道我们可以使用databasepropertyex SP 来识别当前的数据库访问级别,这就足够了。
但是,应用程序用户的权限显然受到限制 - 所以我想向应用程序用户授予尽可能低的权限,但仍允许该用户识别连接类型。
我真的很难确定我需要授予应用程序用户哪些权限,以允许他们查看此命令的输出 - 目前无论我授予什么权限,它都会返回“NULL”。
我显然在某个地方错过了一些东西!
看来问题根本不是权限。
感谢这个线程https://lists.ibiblio.org/pipermail/freetds/2010q2/025616.html我被指出了正确的方向 - 我们的连接库无法优雅地处理过程的返回类型,因为它可以'不映射数据类型。
SELECT CAST(DATABASEPROPERTYEX(DB_NAME(), 'Updateability') AS VARCHAR(40));
返回预期的输出。
供参考,以确认对我们有用的权限;
SQL 用户
public
public
,db_datareader
,db_datawriter