我正在尝试使用以下方式获取有关当前用户权限的信息:
SELECT HAS_PERMS_BY_NAME(DB_NAME(), 'DATABASE', 'CREATE TABLE')
SELECT HAS_PERMS_BY_NAME(DB_NAME(), 'DATABASE', 'CREATE PROCEDURE')
这很好。
CREATE TRIGGER的正确语法是什么?
我试过了:
SELECT HAS_PERMS_BY_NAME(DB_NAME(), 'DATABASE', 'CREATE TRIGGER')
几乎没有运气的变化。我正在使用SQL Server 2012。
感谢。
答案 0 :(得分:3)
CREATE TRIGGER
权限不存在。
检查this page以查看允许使用CREATE TRIGGER
的所需权限。
要创建DML触发器,需要对表或视图具有ALTER权限 在哪个触发器上创建。
使用创建DDL触发器 服务器范围(ON ALL SERVER)或登录触发器需要CONTROL 服务器上的SERVER权限。使用数据库创建DDL触发器 scope(ON DATABASE)需要ALTER ANY DATABASE DDL TRIGGER权限 在当前的数据库中。