我在数据库中有一个可以创建表和存储过程的用户帐户。
我想确认此用户帐户是否可以创建模式 -无需先尝试。(我是金融部门而不是 IT 部门的一员。)
如果我可以创建模式,那么我会请求 IT 部门允许继续这样做。
如果我不能,那么我将继续等待 IT 部门根据我前段时间提出的服务台请求来执行此操作(叹气)。
是否有可以在 SSMS 中运行的命令来告诉我这一点而无需实际创建新架构?
我还截取了该用户权限的几个屏幕截图 - 也许他们会有答案?
编辑:
运行下面 SQLServing 建议的 SQL 后,我得到以下结果:
UserName is_disabled principal_type_desc class_desc object_name permission_name permission_state_desc
DWReports 0 SQL_USER DATABASE NULL CONNECT GRANT
DWReports 0 SQL_USER OBJECT_OR_COLUMN GetSystemSQLAgentJobList EXECUTE GRANT
不,这是错误的。您可以在数据库中创建您想要的所有内容,因为您是
db_owner
. 您可以在查看您的第一张会员照片时看到它。上面答案中的错误是它只考虑为给定用户显式授予权限。但是用户可能是 1000 个角色的成员,并且可以将权限授予这些角色。
在您的情况下,您是
db_owner
可以控制数据库的固定数据库角色的成员,因此您可以在数据库中执行任何操作。要查看您在数据库中的有效权限,请执行以下操作:
HAS_PERMS_BY_NAME
:这将正确考虑您的权限,包括您的所有 Windows 组、角色和固定角色成员资格。还将正确考虑 GRANT 与 DENY。
运行此查询,您应该能够看到您的用户的权限(这里假设您具有对 sys 表的读取权限)