共享后, pincipalobjectaccess会添加一条记录, 共享的权限由AccessRightsMask这个数值决定(Read = 1, Write = 2, Append = 4, AppendTo = 16, Create = 16,Delete = 65536,Share = 262144, Assign = 524288。 所以如果数值为3,权限则为1+2,也就是read/write;数值为7,权限就是1+2+4等等) 取消了共享, 记录不会被删除,但AccessRightsMask这个数值归零。至于为什么不直接删除该记录(物理删除)而选择数值归零(逻辑删除),可能是因为该表结构过于复杂,会影响到其他表。也可能是审计/auditing的要求吧。因为每一次共享或取消,我发现那个versionnumber都会变动。
systemuserprincipals好像存放的是system user的id, 貌似没什么作用