Multi-tenant Database Security Configuration for Portal Users

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-tenant database environments, existing security configurations face challenges in efficiently managing access and optimizing performance due to the complexity of accommodating various user types, such as internal and portal users, which can impact the security and performance of cloud-based services.

Innovation Solution

Implementing a security configuration system that provides separate default settings for internal and portal users, utilizing a sharing provider, access checker, organization-wide default table, membership table, and share table to dynamically manage access based on user types and object characteristics, optimizing processing resources while ensuring secure data access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a unified security configuration is applied to all users in a multi-tenant database environment, then implementation simplicity is maintained, but security effectiveness deteriorates due to inability to differentiate between internal users and portal users with different access requirements

Engineering Contradiction:
Improvesecurity effectivenessVSAvoidsecurity configuration complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the user population into distinct categories (internal users and portal users) and applies different security configurations to each segment. The system divides security settings into organization-wide defaults and object-specific defaults, allowing tailored access control policies for different user types while maintaining manageable complexity through structured segmentation.

Inventive Principle:
Principle #1Segmentation

2Reliability

If comprehensive access checks are performed for all users on all objects, then security coverage is maximized, but system performance deteriorates due to excessive processing overhead

Engineering Contradiction:
Improvesecurity coverageVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by establishing organization-wide default security settings and object-specific default settings in advance. These pre-configured defaults enable the system to quickly determine access permissions without performing comprehensive access checks for every user-object interaction, thereby maintaining security coverage while reducing processing overhead and improving system performance.

Inventive Principle:
Principle #10Preliminary action

3Manufacturing precision

If separate security configurations are created for each user type and object, then security precision is improved, but configuration complexity increases making the system difficult to maintain

Engineering Contradiction:
Improvesecurity configuration precisionVSAvoidconfiguration maintenance complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent applies local quality by allowing different security configurations at different levels: organization-wide defaults provide a baseline security posture for all objects, while object-specific defaults allow localized customization for particular objects requiring different access patterns. This hierarchical approach enables precise security configuration where needed while maintaining simplicity through standardized defaults elsewhere.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9355270B2Security configuration systems and methods for portal users in a multi-tenant database environment
Publication Date: 2016.05.31 SALESFORCE INC
  • US9355270B2 patent drawing
  • US9355270B2 patent drawing
  • US9355270B2 patent drawing

AI summary

A computer-implemented system and method includes method includes receiving a data request for data in a database from a user; determining if the user is an internal user or a portal user; consulting, if the user is the internal user, a first security setting associated with the data to determine if the requested data is public or private, and if the user is the portal user, consulting a second security setting separate from the first security setting to determine if the requested data is public or private; providing, if the requested data is public, access information to the user; performing, if the requested data is private, additional processing to determine if the user has access to the requested data.