Cơ sở dữ liệu owner
là một chút quay trở lại một thời gian trước khi lược đồ (thích hợp) được giới thiệu trong SQL Sever 2005.
Về cơ bản, chủ sở hữu cơ sở dữ liệu là mặc định dbo
(chủ sở hữu cơ sở dữ liệu) của cơ sở dữ liệu, với cơ sở dữ liệu là đối tượng cơ sở dữ liệu .
Từ tài liệu SQL Server 2000 ...
Người dbo
dùng đã ngụ ý các quyền để thực hiện tất cả các hoạt động trong cơ sở dữ liệu.
Trong các phiên bản trước của SQL Server, khi một lược đồ không thể "sở hữu" một đối tượng ( hay đúng hơn nên nói rằng tất cả các đối tượng, bảng, khung nhìn, v.v. đều thuộc sở hữu dbo
và không có lược đồ nào khác ) cần thiết cho một "user" để sở hữu nó ... nó nên đi mà không nói lý do tại sao một cái gì đó cần phải sở hữu cơ sở dữ liệu (hoặc quyền khác nói chung sẽ là khá khó khăn.)
Vì vậy, về mặt kỹ thuật trong các phiên bản cũ hơn của SQL Server (hoặc cơ sở dữ liệu được nâng cấp), đó không phải là bảng "Foo", đó là bảng "dbo.Foo" ... với dbo
chủ sở hữu.
Với sự ra đời của SQL Server 2005, bạn có thể có các đối tượng cơ sở dữ liệu thuộc sở hữu lược đồ như nói rằng bạn có một lược đồ có tên là "thanh" và bảng có tên "Foo" ... điều này trở thành bar.Foo
như trong ...
SELECT * FROM bar.Foo WHERE etc = 'blah`;
Phần khó khăn đi kèm với thực tế là người dùng tạo cơ sở dữ liệu được tự động đặt làm chủ sở hữu dẫn đến các vấn đề với nhân viên chuyển qua, v.v.
Do đó, cách tốt nhất là thay đổi điều này thành sa
tài khoản hoặc có lẽ (theo kinh nghiệm của tôi) thành tài khoản miền có thể được quản lý bởi nhóm ops / IT của tổ chức.
Bài viết này phân tích sự khác biệt giữa cách làm "chủ sở hữu" cũ hơn và hệ thống sở hữu dựa trên "lược đồ" mới hơn.
Để hiểu sự khác biệt giữa chủ sở hữu và lược đồ, hãy dành thời gian xem xét quyền sở hữu đối tượng. Khi một đối tượng được tạo trong SQL Server 2000 trở về trước, đối tượng phải có chủ sở hữu. Hầu hết thời gian, chủ sở hữu là người hâm mộ, hay còn gọi là chủ sở hữu cơ sở dữ liệu.