Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

क्या मैं संग्रहीत प्रक्रिया के भीतर एक डिफ़ॉल्ट स्कीमा सेट कर सकता हूं?

यहां विभिन्न स्थानों पर इसे कैसे करना है, इसके टुकड़े हैं, लेकिन पूरी तरह से नहीं। ऐसा करने का तरीका यह है:

  1. प्रत्येक स्कीमा के लिए एक अद्वितीय लॉगिन और उपयोगकर्ता बनाएं

  2. इन उपयोगकर्ताओं को प्रत्येक भिन्न स्कीमा का स्वामी बनाएं।

  3. ऐसे प्रत्येक उपयोगकर्ता के डिफ़ॉल्ट स्कीमा को उस स्कीमा के रूप में सेट करें जिसका वह स्वामी है।

  4. सिंटैक्स का उपयोग करें EXECUTE ('sql commands') AS USER = 'schema-owner' अपने SQL कमांड को उस डिफ़ॉल्ट स्कीमा के संदर्भ में निष्पादित करने के लिए।

निम्न स्क्रिप्ट इसे प्रदर्शित करती है:

--====== Create the Login for the User:
CREATE LOGIN [UserTest1] WITH PASSWORD='whatever', DEFAULT_DATABASE=[TestUsers], DEFAULT_LANGUAGE=[us_english]
GO

--====== Make a User for the Login:
CREATE USER [UserTest1] FOR LOGIN [UserTest1]
GO

--====== Make a Schema owned by the User and default to it:
--        (I assume that you already have the schemas)
CREATE SCHEMA [UserTest1] AUTHORIZATION [UserTest1]
GO
ALTER USER [UserTest1] WITH DEFAULT_SCHEMA=[UserTest1]
GO

--====== Make a sProc in dbo
CREATE PROCEDURE [dbo].[TestSchema_Exec] AS
    SELECT 'executing in schema [dbo]'
GO
--====== Make a similar sProc in New Schema
CREATE PROCEDURE [UserTest1].[TestSchema_Exec] AS
    SELECT 'executing in schema [UserTest1]'
GO

--========= Demonstrate that we can switch Default Schemas:
EXEC('TestSchema_Exec')

EXEC('TestSchema_Exec') AS USER = 'UserTest1'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. =* का क्या अर्थ है?

  2. SQL सर्वर में रैंड () नियतात्मक कैसे बनाएं?

  3. QuickBooks रिकॉर्ड्स को पॉप्युलेट करने के लिए SQL सर्वर इंटीग्रेशन सर्विसेज (SSIS) का उपयोग करना

  4. डेटाबेस बाधाएं क्या हैं?

  5. एसक्यूएल सर्वर में पृष्ठ जीवन प्रत्याशा की निगरानी