C#如何判断SQLServer数据库用户的有效权限?当我说有效权限时,我指的是当您进入SQLServerManagementStudio中的数据库属性时列出的权限,单击“权限”,然后单击“有效”选项卡。到目前为止,我已经能够使用以下代码确定显式权限:usingMicrosoft.SqlServer.Management.Smo;...DatabasePermissionInfo[]permissions=database.EnumDatabasePermissions("用户名");但是,我仍然需要获得有效权限。在这种情况下,我为用户添加了一个登录名,并通过用户映射为数据库赋予了角色db_datareader和db_datawriter。在数据库的权限中,列出的有效权限是CONNECT、DELETE、INSERT、SELECT和UPDATE,但只列出了连接的显式权限(这是上面代码唯一依赖的)。那么还有一种方法可以通过编程方式检索有效权限吗?谢谢。我相信您可以调用sys.fn_my_permissions:executeasuser='SomeUserName'--将其设置为您要检查的用户名select*fromfn_my_permissions(null,'DATABASE')--保留这些参数,不要更改为MyDatabaseNameorderbysubentity_name,permission_namerevert这给了我与你提到的SSMS选项相同的结果。看起来sys.database_principals和sys.database_permissions对此有一些很好的信息。这个线程:SQLServerquerytofindallpermissions/accessrightsforallusersinadatabase进一步讨论了它。注意:我假设C#调用数据库是一个可接受的解决方案。以上就是C#学习教程:如何通过C#判断SQLServer数据库用户的有效权限?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
