MS Docs(在线书籍)声明调用者必须拥有包含的模式或者是固定数据库角色的成员。(系统管理员、db_owner、db_ddladmin)。
在 SQL Server 2008 R2 中是否有特定的权限或一组权限可以被授予以允许此操作?
我有一个案例,我需要授予权限但权限最少,并且希望避免创建允许他们需要执行此操作的特定表集的存储过程(使用 execute as)。
他们还需要 TRUNCATE,但是 ALTER 权限涵盖了这一点。
MS Docs(在线书籍)声明调用者必须拥有包含的模式或者是固定数据库角色的成员。(系统管理员、db_owner、db_ddladmin)。
在 SQL Server 2008 R2 中是否有特定的权限或一组权限可以被授予以允许此操作?
我有一个案例,我需要授予权限但权限最少,并且希望避免创建允许他们需要执行此操作的特定表集的存储过程(使用 execute as)。
他们还需要 TRUNCATE,但是 ALTER 权限涵盖了这一点。
我希望有人能在这个问题上指出我正确的方向。这是我到目前为止的工作。
SELECT * FROM sys.identity_columns
是一个系统视图,它提供“last_value”,但该视图的定义使用内部函数IdentityProperty(colName, 'LastValue')
- 所以这是一个死胡同(不是从那里的系统表中拉出来的)。
互联网上的任何地方(我看过)都建议使用DBCC IDENT_...
命令来发现价值,但这仍然让我对它的实际存储位置一无所知。
DBCC PAGE(TestDB,1,1325,3)
因此,我开始使用我的测试工具 db搜索各个页面,并使用RESEED
命令在值 10 和 12 之间重新设置种子。
在这样做时,我注意到 , 上的十六进制值IAM: Header
都IAM: Single Page Allocations
发生IAM: Extent Alloc Status Slot 1
了变化。(并意识到它们会随着bUse1值的变化而周期性变化,bUse1 值也会自行递增)。
所以另一个死胡同,我完全没有想法。我还能在哪里搜索?
我正在运行 SQL Server 2014。我对内部知识有着永不满足的渴望,并且还没有遇到像这样难以捉摸的东西。它引起了我的注意,因为从理论上讲,它(绝对值)存储在某个地方并且应该(可以说)是可定位的。在我寻找内部存储数据/元数据位置的过程中,这个特殊的价值让我觉得特别难以捉摸。我猜/希望有人会过来告诉我,你可以得到它,DBCC PAGE
但我找错地方了。