特定用户-Main_user
(缺省数据库为db_A
)执行
USE db_A
ALTER USER another_user DISABLE;
每次尝试这样做时,都会显示错误消息:
消息916,级别14,状态2,服务器****,过程****sysadmin,第32行
服务器主体Main_user无法在当前安全上下文下访问数据库db_ZZZ。
如您所见,该过程似乎试图执行涉及db_ZZZ
的代码,而这显然与ALTER USER
语句无关。
问题是,我在任何地方都找不到过程******sysadmin
(不是触发器,什么都没有),而且我不明白在这种情况下它有什么用。
哪些解释是合理的?
我不知道提及Main_user
是Wherescape RED的服务用户是否有用。我不能与任何其他用户测试此代码,因为我没有任何其他用户拥有这样做的权限。
2条答案
按热度按时间92dk7w1h1#
这听起来像是在服务器上启用了DDL触发器。要查看是否是这种情况,请查看
sys.server_triggers
系统视图,或者在SSMS中,查看Server Objects → Triggers。从那里,您应该能够看到触发器的定义是什么,并决定是要保留它(进行修改以使其实际工作)还是完全删除它。zqry0prt2#
就像Larnu说的,你可以用下面的查询找到触发器: