Tôi cần thay đổi chủ sở hữu sơ đồ cơ sở dữ liệu trong SQL Server 2005. Hiện tại nó thuộc sở hữu của tôi (domain \ username.diagramName) và tôi muốn thay đổi nó thành sở hữu bởi dbo (dbo.diagramName). Tôi nghĩ rằng tôi có thể sử dụng sp_changeobjectowner, nhưng tôi tin rằng đó là chỉ cho các bảng, thủ tục lưu trữ, vv ... Tôi nghĩ rằng điều này là khá dễ dàng, tôi chỉ không thể tìm thấy bất cứ điều gì thông qua một tìm kiếm google.Thay đổi chủ sở hữu sơ đồ cơ sở dữ liệu trong SQL Server 2005
Trả lời
Cuối cùng, tôi đã phải gỡ bỏ mà người dùng giản đồ sau đó chạy bản cập nhật sau ...
-- to identify the diagram id, name, & owner
select *
from dbo.sysdiagrams
-- to manually change the owner of a diagram
-- note: i derived that the principal_id =1 for dbo from above query
update
dbo.sysdiagrams set principal_id =1 where diagram_id = 1
tôi đã kết thúc nhận được sự giúp đỡ tôi cần từ một DBA đây trong khuôn viên trường.
Bài viết này cho biết bạn sẽ phải tự xóa mình với tư cách là người dùng của db. Mở nó lên với người sử dụng của sự lựa chọn của bạn.
http://msdn.microsoft.com/en-us/library/ms171972(VS.80).aspx
Khi tôi cố gắng xóa người dùng, tôi nhận được ... TITLE: Microsoft SQL Server Management Studio Không thành công cho miền 'Tên người dùng'. (Microsoft.SqlServer.Smo) Để được trợ giúp, hãy nhấp vào: http://bit.ly/gHA9 THÔNG TIN BỔ SUNG: Đã xảy ra trường hợp ngoại lệ trong khi thực hiện lệnh hoặc lô Transact-SQL. (Microsoft.SqlServer.ConnectionInfo) Cơ sở dữ liệu chính sở hữu một lược đồ trong cơ sở dữ liệu và không thể bị loại bỏ. (Microsoft SQL Server, Lỗi: 15138) Để được trợ giúp, hãy nhấp vào: http://bit.ly/2lzKpz – Jason
Tôi tưởng tượng có một lược đồ được gọi là 'jason' bạn sẽ cần phải thay đổi đối tượng từ lược đồ đó sang nó. http://msdn.microsoft.com/en-us/library/ms173423.aspx –
Tôi đã xóa giản đồ và có thể xóa người dùng. Khi tôi quay trở lại biểu đồ, chủ sở hữu sau đó đã được thay đổi thành công khai. Vẫn không phải những gì tôi muốn. Bạn có thêm đề xuất nào không? – Jason
Mặc dù nó sẽ không giúp trong trường hợp này (vì nó chỉ cần tái tạo lại toàn bộ sysdiagrams
hàng), các kịch bản
ScriptDiagram2005 hoặc ScriptDiagram2008
cho phép bạn tạo một kịch bản INSERT của nội dung của sơ đồ ', được chạy lại dựa vào cơ sở dữ liệu nguồn (hoặc bản sao lưu, hoặc bản sao theo kịch bản hoặc bất kỳ thứ gì). Bạn có thể dễ dàng (biết những gì bạn bây giờ biết về principal_id
) tái tạo sơ đồ với một chủ sở hữu mới là tốt.
Chỉ cần tìm và chỉnh sửa các phần còn lại của tuyên bố này trong kịch bản
INSERT INTO sysdiagrams ([name], [principal_id], [version], [definition])
lợi ích thực sự là khả năng nguồn kiểm soát/sao lưu các tập tin văn bản ...
UPDATE dbo.sysdiagrams
SET principal_id = 1
Set một Mệnh đề WHERE nếu cần. Các văn bản trên cho thấy bạn cần phải loại bỏ người dùng từ cơ sở dữ liệu, nhưng tôi không phải làm điều đó. Tôi đang sử dụng SQL2008 R2.
USE [db_name]
UPDATE dbo.sysdiagrams
SET principal_id = 1
nếu tuyên bố trên không làm việc, bạn có thể mất một chỉnh sửa trên bảng này với nhấp chuột phải vào dbo.sysdiagrams và chọn Edit top 200 hàng, sau đó bạn có thể thiết lập cột principal_id cho tất cả hồ sơ tự đặt tới 1
Phương pháp không sql làm việc cho tôi. Tôi đã không hoàn toàn hiểu lúc đầu những gì bạn có nghĩa là @ xấu hổ aj nhưng có, để được rõ ràng hơn, theo System Tables, rt click vào dbo.sysdiagrams và chọn để chỉnh sửa hàng đầu 200. Trong bảng được hiển thị, bạn chỉ cần tìm hàng xác định sơ đồ quan tâm của bạn và thay đổi giá trị trong hàm principal_id thành 1. Hãy làm mới danh sách sơ đồ và bạn sẽ thấy nó cập nhật thành dbo làm chủ sở hữu. –
- 1. Làm cách nào để thay đổi chủ sở hữu của cơ sở dữ liệu SQL Server?
- 2. SQL Server 2005, cách sao chép Sơ đồ cơ sở dữ liệu sang máy chủ khác
- 3. Thay đổi vị trí cơ sở dữ liệu sẽ giảm lược đồ của chủ sở hữu
- 4. Làm cách nào để di chuyển Sơ đồ cơ sở dữ liệu SQL Server sang cơ sở dữ liệu khác?
- 5. Đổi tên tệp dữ liệu cơ sở dữ liệu trong SQL Server 2005
- 6. Thả cơ sở dữ liệu SQL Server
- 7. cách in sơ đồ cơ sở dữ liệu sql
- 8. Sơ đồ cơ sở dữ liệu EtherPad?
- 9. Tôi không thể tạo sơ đồ cơ sở dữ liệu trong VS2010 cho SQL Server Express
- 10. Cách chuyển đổi cơ sở dữ liệu Visual Foxpro sang cơ sở dữ liệu SQL Server
- 11. Có thể ẩn các cột trong sơ đồ cơ sở dữ liệu SQL Server Management Studio?
- 12. Làm thế nào để bạn thay đổi chủ sở hữu của một cơ sở dữ liệu trong sql?
- 13. Xem hồ sơ mới trong cơ sở dữ liệu sql
- 14. Giản đồ, Chủ sở hữu đối tượng trong MS SQL
- 15. Sự khác biệt giữa "db_owner" và "người dùng sở hữu cơ sở dữ liệu" trong SQL Server 2000 là gì?
- 16. Cập nhật bảng cơ sở dữ liệu từ một bảng cơ sở dữ liệu SQL Server sang bảng cơ sở dữ liệu SQL Server khác?
- 17. Làm thế nào để chuyển dữ liệu được mã hóa sql giữa các cơ sở dữ liệu SQL Server 2005?
- 18. Tắt Sơ đồ cơ sở dữ liệu trong SSMS
- 19. Khóa cơ sở dữ liệu máy chủ SQL với PHP
- 20. Cơ sở dữ liệu cục bộ với sơ đồ
- 21. Lưu trữ giá trị C# DateTimeOffset trong cơ sở dữ liệu SQL Server 2005
- 22. Tìm bảng trên nhiều cơ sở dữ liệu SQL SERVER 2005
- 23. Tránh con trỏ cơ sở dữ liệu trong SQL Server
- 24. Bí danh cơ sở dữ liệu chéo của SQL Server
- 25. Chiến lược triển khai cơ sở dữ liệu (SQL Server)
- 26. SQL Server: Làm thế nào để biết cơ sở dữ liệu là một cơ sở dữ liệu hệ thống?
- 27. Làm cách nào để khóa cơ sở dữ liệu SQL Server để thay đổi?
- 28. enums trong cơ sở dữ liệu SQL Server
- 29. Mang cơ sở dữ liệu SQL Server trực tuyến
- 30. Truy vấn tổng quát để tìm xem liệu người dùng cơ sở dữ liệu sở hữu một lược đồ
Như có thể thấy bằng cách chạy 'SELECT * FROM sys.database_principals',' principal_id' số 1 là tên chính 'dbo'. Tôi tưởng tượng người ta cũng có thể xem xét 'principal_id' 0, công khai. – jpmc26