Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tôi có thể đặt một lược đồ mặc định cho trong một quy trình được lưu trữ không?

Ở đây có nhiều phần về cách thực hiện việc này, nhưng không phải hoàn toàn. Cách để làm điều này là:

  1. Tạo một thông tin đăng nhập và người dùng duy nhất cho mỗi giản đồ

  2. Đặt những người dùng này làm chủ sở hữu của từng lược đồ khác nhau.

  3. Đặt lược đồ mặc định của mỗi người dùng như vậy thành lược đồ mà họ sở hữu.

  4. Sử dụng cú pháp EXECUTE ('sql commands') AS USER = 'schema-owner' để thực thi các lệnh SQL của bạn trong ngữ cảnh của lược đồ mặc định đó.

Tập lệnh sau minh họa điều này:

--====== 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. Sql Server - kết nối với xác thực windows

  2. Hỗ trợ SQL Server 2008 đang kết thúc. Bây giờ là gì?

  3. Các tùy chọn giám sát cơ sở dữ liệu hàng đầu có sẵn cho doanh nghiệp của bạn

  4. Làm cách nào để chèn một bảng dữ liệu vào bảng cơ sở dữ liệu SQL Server?

  5. Các lựa chọn thay thế SQL Server Management Studio để duyệt / chỉnh sửa bảng và chạy các truy vấn