Sql 自定义数据库角色

Sql 自定义数据库角色,sql,sql-server,tsql,sql-server-2008-r2,Sql,Sql Server,Tsql,Sql Server 2008 R2,我想为一些用户创建一个角色,以便他们能够创建、修改和删除自己的视图。为了跟踪它们可以使用什么,我考虑了一个带有特定前缀的命名约定,比如“MYVIEW”。但我不知道如何写一份赠款声明来实现这一点。有什么建议吗?您可以创建。每当修改DB模式时,就会发生DDL触发器。(DDL=数据定义语言,即T-SQL语言中允许创建、更改、删除等所有类型的数据库对象(如表、视图、索引、触发器等)的部分,即任何更改数据库模式的部分) 在DDL触发器中,您可以看到用户名、尝试的命令等,并根据用户是谁以及他在做什么回滚操作

我想为一些用户创建一个角色,以便他们能够创建、修改和删除自己的视图。为了跟踪它们可以使用什么,我考虑了一个带有特定前缀的命名约定,比如“MYVIEW”。但我不知道如何写一份赠款声明来实现这一点。有什么建议吗?

您可以创建。每当修改DB模式时,就会发生DDL触发器。(DDL=数据定义语言,即T-SQL语言中允许创建、更改、删除等所有类型的数据库对象(如表、视图、索引、触发器等)的部分,即任何更改数据库模式的部分)

在DDL触发器中,您可以看到用户名、尝试的命令等,并根据用户是谁以及他在做什么回滚操作。在这里你可以看到

请记住,进行
回滚
足以中止DDL操作,即避免更改

通过这种方式,您可以限制特定用户可以执行的操作。您还可以创建一个包含用户及其可以执行的操作的表,并从触发器代码中查看用户的权限。通过这种方式,您可以对多个用户使用单个触发器,并使其更易于维护。例如,在触发器代码中,查找该表中的用户,以查看是否有必要应用该控件


如果不允许用户进行操作,建议
打印一条消息,告诉他原因。

我认为您需要给他们自己的模式,并给他们模式上的选择和查看定义权限。我同意。一个模式将是处理这个问题的一个很好的方法。这很好。谢谢