コード例 #1
0
        public void GrantOn(DbObjectType objectType, ObjectName objectName, string grantee, Privileges privileges, bool withOption = false)
        {
            try {
                var granter = Session.User.Name;

                var grant = new Grant(privileges, objectName, objectType, grantee, granter, withOption);
                PrivilegeManager.Grant(grant);
            } finally {
                PrivilegesCache.Remove(new GrantCacheKey(grantee, objectType, objectName.FullName, withOption, false));
            }
        }
コード例 #2
0
 public void Revoke(DbObjectType objectType, ObjectName objectName, string grantee, Privileges privileges,
                    bool grantOption = false)
 {
     try {
         var revoker = Session.User.Name;
         var grant   = new Grant(privileges, objectName, objectType, grantee, revoker, grantOption);
         SystemSession.Access().PrivilegeManager.Revoke(grant);
     } finally {
         var key = new GrantCacheKey(grantee, objectType, objectName.FullName, grantOption, false);
         PrivilegesCache.Remove(key);
     }
 }
コード例 #3
0
        private void RevokeAllGrantsFrom(string grantee)
        {
            var grants = PrivilegeManager.GetGrants(grantee, false);

            try {
                foreach (var grant in grants)
                {
                    PrivilegeManager.Revoke(grant);
                }
            } finally {
                foreach (var grant in grants)
                {
                    PrivilegesCache.Remove(new GrantCacheKey(grant.Grantee, grant.ObjectType, grant.ObjectName.FullName,
                                                             grant.WithOption, false));
                }
            }
        }
コード例 #4
0
        public void RevokeAllGrantsOn(DbObjectType objectType, ObjectName objectName)
        {
            var grants = PrivilegeManager.GetGrantsOn(objectType, objectName);

            try {
                foreach (var grant in grants)
                {
                    PrivilegeManager.Revoke(grant);
                }
            } finally {
                foreach (var grant in grants)
                {
                    PrivilegesCache.Remove(new GrantCacheKey(grant.Grantee, grant.ObjectType, grant.ObjectName.FullName,
                                                             grant.WithOption, false));
                }
            }
        }