không thể thêm người dùng vào vai trò sysadmin trong SQL Server


9

Tôi đang sử dụng SQL Server 2008 Management Studio. Tài khoản đăng nhập hiện tại thuộc về nhóm quản trị viên cục bộ của máy. Tôi đang sử dụng chế độ Bảo mật tích hợp của Windows trong SQL Server 2008.

Vấn đề của tôi là, sau khi đăng nhập vào SQL Server Management Studio, tôi chọn tên đăng nhập của mình trong Bảo mật / Đăng nhập, sau đó chọn Tab Vai trò máy chủ, sau đó chọn mục cuối cùng - sysadmin để biến mình thuộc nhóm / vai trò này, nhưng nó nói tôi không có đủ sự cho phép Bất cứ ý tưởng những gì là sai? Tôi nghĩ rằng quản trị viên địa phương sẽ có thể làm bất cứ điều gì. :-)


đây là những gì cung cấp microsoft về vấn đề này: msdn.microsoft.com/en-us/library/dd207004.aspx tôi có thể giới thiệu kịch bản này: archive.msdn.microsoft.com/addselftosqlsysadmin/Release/...

Câu trả lời:


6

Đăng nhập của phiên mà bạn cố gắng đặt quyền phải có quyền.

Vì vậy, đăng nhập bạn đang sử dụng là một quản trị viên địa phương? Điều này có nghĩa là nhóm quản trị viên địa phương không có đủ quyền.

GUI cũng sẽ chạy sp_addsrvrolemember này . Mặc dù điều này nói

Yêu cầu thành viên trong vai trò mà thành viên mới đang được thêm vào.

Vì vậy, nhóm quản trị viên địa phương không phải là thành viên của sysadmin.

Biên tập:

Để giải quyết: Sử dụng thông tin đăng nhập có quyền. bạn có thể tìm thấy một người sử dụng sp_helpsrvrolemember


Lời khuyên của bạn để giải quyết vấn đề của tôi là gì?
George2

Không chắc chắn nếu có bất kỳ giải pháp hoặc giải pháp nào mà không cài đặt lại tất cả SQL Server 2008 một lần nữa! :-(
George2

"Sử dụng thông tin đăng nhập có quyền" - làm cách nào tôi có thể nhận được danh sách thông tin đăng nhập có đủ quyền?
George2

Cảm ơn, tôi tìm thấy thành viên duy nhất được liệt kê từ EXEC sp_helpsrvrolemember 'sysadmin' được gọi là sa, đó có phải là Người dùng Windows không? Tôi không thể tìm thấy một người dùng như vậy từ danh sách Người dùng Windows. Có ý kiến ​​gì không?
George2

1
Đó là thông tin đăng nhập SQL dành riêng, không phải người dùng Windows. Trong bản cài đặt SQL 2008 thử nghiệm của tôi, tài khoản đã cài đặt SQL Server được liệt kê.
gbn

4

Trong một bài viết hay khác Khắc phục sự cố: Kết nối với Máy chủ SQL khi Quản trị viên hệ thống bị khóa , tác giả cho chúng tôi biết rằng tất cả những gì chúng tôi phải làm để lấy lại quyền kiểm soát Máy chủ SQL của mình là

"Bắt đầu phiên bản SQL Server ở chế độ người dùng đơn bằng cách sử dụng tùy chọn -m hoặc -f. Bất kỳ thành viên nào trong nhóm Quản trị viên cục bộ của máy tính đều có thể kết nối với phiên bản của SQL Server với tư cách là thành viên của vai trò máy chủ cố định sysadmin. "

Thật không may, ý nghĩa của việc bắt đầu trong chế độ một người dùng không phải là vấn đề trực quan. Ngoài ra, ít nhất theo kinh nghiệm của tôi, tư cách thành viên trong nhóm Quản trị viên cục bộ của máy tính của tôi đã không cấp trạng thái sysadmin cho tài khoản "người dùng" của tôi.

Câu chuyện này đã bắt đầu khi giải quyết vấn đề thành viên trong miền của tôi bởi một máy chủ không phải DC (hậu quả của việc thay đổi ISP), tôi đã xây dựng lại DC thành Windows Server 2008 R2 từ năm 2008. Điều này đã giải quyết một vài vấn đề nhỏ nhưng không giải quyết được câu hỏi về thành viên của máy chủ errant. Phải mất một bản sửa lỗi được đề xuất trong ServerFault để thực hiện điều đó (trong trường hợp của tôi, đó là vấn đề đặt lại winock và tcpip).

SQL Server 2008 nằm trên máy chủ thứ hai đó, hiện là thành viên của miền. Đây là vấn đề. Như ai đó đã chỉ ra trên ServerFault, thông thường sẽ đẩy "hãy để người dùng hiện tại trở thành sysadmin", khi cài đặt Server 2008. Thông thường cũng không xem xét bất kỳ ai khác. Bởi vì danh tính người dùng duy nhất đó là một thành viên miền của một tên miền không còn tồn tại, nên không ai có quyền quản trị Sql Server.

Tôi đã đăng nhập với tư cách quản trị viên máy chủ cục bộ đã có mặt khi Sql Server được cài đặt, nhưng mặc dù điều này cho phép tôi truy cập vào Studio quản lý, tôi nhanh chóng phát hiện ra rằng BUILTIN \ Quản trị viên chỉ có vai trò máy chủ "công khai".

Sau nhiều nghiên cứu và thử nghiệm, tôi tình cờ thấy một bài viết đưa ra thông tin cụ thể về đăng nhập một người dùng http://technet.microsoft.com/en-us/l Library / ms180965.aspx :

C:\>cd \Program Files\Microsoft SQL Server\MSSQL10_50.1\MSSQL\Binn 
C:\...>sqlservr.exe -m

Để chuẩn bị thực hiện bước này, bạn phải tắt Sql Server (chạy theo mặc định trong hầu hết các trường hợp). Sử dụng Trình quản lý cấu hình SQL để dừng "Máy chủ Sql."

Sau đó, trong một dấu nhắc lệnh, điều hướng đến vị trí tệp chương trình đó (hoặc tương đương trên máy của bạn) và đưa ra lệnh "sqlservr.exe -m". Nếu bạn thấy một luồng hoạt động được đăng nhập trong dấu nhắc lệnh của bạn, bạn đã thành công. Nếu không khởi động được thì có lẽ bạn đã chạy SQL Server. Tắt nó.

Cho phép cá thể người dùng đơn lẻ đính kèm cơ sở dữ liệu của nó. Khi ngừng hoạt động đăng nhập, hãy mở Management Studio. Bạn sẽ tự động ở chế độ một người dùng và do đó, bất kỳ tài khoản nào bạn đại diện sẽ là một sysadmin. Sử dụng sức mạnh đó để điều chỉnh thông tin đăng nhập bảo mật và vai trò máy chủ.

Trong trường hợp của tôi, tôi phải tạo lại các tài khoản miền trong miền mới, sau đó xóa tên của chúng trong SQL Server và xây dựng lại chúng (do tình huống SID / GUID), gán lại quyền cho các cơ sở dữ liệu cụ thể khi cần thiết.


Ngoài ra còn có một cách khác để đặt tham số: mở dịch vụ, người quản lý, chọn dịch vụ và sau đó các thuộc tính từ menu chuột phải. Trong tab chung có chỉnh sửa "Bắt đầu tham số". Nhập các tham số cần thiết ở đó. Sau đó khởi động dịch vụ bằng nút bắt đầu trong trang đó , các tham số được đặt ở đó không vĩnh viễn và chỉ hợp lệ khi dịch vụ được khởi động từ hộp thoại Thuộc tính.
ldsandon

3

SQL Server 2008 không còn thêm BUILTIN \ Quản trị viên làm thành viên của vai trò máy chủ cố định sysadmin

Điều đó đúng, NHƯNG trong trường hợp đó bạn có thể phục hồi từ tình huống đó khi bắt đầu Dịch vụ máy chủ SQL ở Chế độ người dùng đơn (chế độ khẩn cấp) và bất kỳ quản trị viên cục bộ nào cũng có thể đăng nhập.

Xem MSDN .


2

Theo mặc định, SQL thêm nhóm BUILTIN \ Quản trị viên vào vai trò sysadmin, nghĩa là bất kỳ quản trị viên NT cục bộ nào cũng tự động là một sysadmin SQL. Trên Vista, vì UAC, bạn phải chạy ở chế độ 'với tư cách Quản trị viên' để được hưởng lợi từ đặc quyền này.

  • Nếu bạn đang ở trên Vista, hãy chạy công cụ máy khách (SSMS) 'với tư cách quản trị viên' và sau đó thử tự thêm mình dưới dạng sysadmin.
  • Nếu nhóm BUILTIN \ Quản trị viên vô tình bị xóa khỏi vai trò sysadmin, thì bạn phải đăng nhập bằng một lần đăng nhập sysadmin khác. Nếu không có thông tin đăng nhập sysadmin nào khác, bạn phải đăng nhập bằng xác thực SQL là sa và sử dụng mật khẩu sa được đặt trong khi thiết lập. Sau khi đăng nhập với tư cách là thành viên của sysadmin, quảng cáo BUILTIN \ Adisnitrators trở lại vai trò của sysadmin. Nếu thông tin đăng nhập SQL bị vô hiệu hóa thì xin chúc mừng, bạn chỉ cần tự khóa khỏi cài đặt SQL.
  • Nếu nhóm BUILTIN \ Quản trị viên bị xóa có chủ ý khỏi vai trò sysadmin (theo KB932881 ) thì bạn đang cố gắng hack vào hệ thống mà bạn không có quyền.

Xin chào Remus, tôi bối rối rằng trong quá trình cài đặt, tôi không thiết lập bất kỳ mật khẩu nào cho sa, có mật khẩu mặc định không?
George2

Một sự nhầm lẫn khác là, từ quy trình chạy cửa hàng sp_helpsrvrolemember để tìm tất cả người dùng vai trò sysadmin, chỉ có sa được liệt kê, không có người dùng nào khác từ nhóm quản trị viên máy cục bộ, có ý tưởng nào không?
George2

Không có mật khẩu mặc định cho sa. mật khẩu của sa được đặt trong khi thiết lập, nếu xác thực hỗn hợp được bật. Bạn sẽ phải yêu cầu quản trị viên cơ sở dữ liệu của bạn cấp cho bạn quyền truy cập nếu bạn cần.
Remus Rusanu

"Nếu đăng nhập SQL bị vô hiệu hóa thì xin chúc mừng, bạn chỉ cần tự khóa mình khỏi cài đặt SQL." Trong trường hợp đó, hãy xem câu trả lời của Jord bên dưới để khởi động SQL Server ở Chế độ người dùng đơn.
Michiel van Oosterhout

1

Theo mặc định, SQL Server 2008 không còn thêm BUILTIN \ Quản trị viên làm thành viên của vai trò máy chủ cố định sysadmin. Khi bạn đi qua trình cài đặt, nó sẽ hỏi tài khoản hoặc tài khoản nào sẽ có quyền sysadmin. Có một nút về cơ bản là "biến tôi thành một sysadmin" sẽ thêm tài khoản của người dùng thực hiện cài đặt dưới dạng một sysadmin.

Nếu họ không thêm bất kỳ người dùng nào khác dưới dạng sysadins thì chỉ có người dùng đó hiện là sysamdin. Bạn sẽ cần phải có người đó đăng nhập vào Máy chủ SQL và cấp các quyền sysadmin của DBA.


0

Tôi đã xử lý vấn đề tương tự sau khi cài đặt mới cho đến khi tôi đăng ký máy chủ, trên SQL Server 2008, sau đó mọi thứ diễn ra như bình thường

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.