Thay đổi mật khẩu với Oracle SQL Developer


139

Nhiều người dùng của tôi không sử dụng SQLPlus. Tôi không thể cung cấp cho họ thay đổi người dùng. Chúng tôi hết hạn mật khẩu cứ sau 60 ngày.

Tôi không thể lấy "mật khẩu" lệnh SQLPlus để hoạt động trong nhà phát triển SQL.

  1. Khi tôi nhấn run, tôi gặp lỗi lệnh không hợp lệ
  2. Khi tôi nhấn run script, không có gì xảy ra.

Tôi không muốn viết cho họ một gói để thay đổi mật khẩu vì chúng tôi có rất nhiều cơ sở dữ liệu. Tôi có một lựa chọn tốt hơn?


4
Bạn không thể thay đổi mật khẩu đã hết hạn trong SQL Developer thông qua lệnh SQL. Nó không được hỗ trợ trong ngăn xếp JDBC. Bạn cần các thư viện OCI cho việc này. Nhà phát triển SQL có một tùy chọn để đặt lại và hết hạn mật khẩu thông qua ngăn xếp OCI nếu nó đã được cài đặt chính xác. Xem câu trả lời của tôi để biết chi tiết đầy đủ.
Frobbit

Bạn có thể làm điều này với SQL Developer 4.1.0.17. Xem câu trả lời của tôi dưới đây.
Phân tích mờ

Câu trả lời:


189

Cú pháp chính xác để cập nhật mật khẩu bằng SQL Developer là:

alter user user_name identified by new_password replace old_password ;

Bạn có thể kiểm tra thêm tùy chọn cho lệnh này tại đây: ALTER USER-Oracle DOCS


29
Ngoài ra, bạn có thể cần phải bọc (các) mật khẩu trong dấu ngoặc kép để thoát bất kỳ ký tự đặc biệt nào trong mật khẩu. Ví dụ: alter user __user_name__ identified by "newp@ss!!!" replace "oldp@ss!!!"Thông tin thêm tại asktom.oracle.com/pls/asktom/ Kẻ
Bryant Bowman

6
Nếu pwd của bạn đã hết hạn thì chúc may mắn đăng nhập để chạy này. Trả lời Một câu hỏi, nhưng không phải là câu hỏi.
Ben George

105

Trong bảng tính SQL:

  • Nhập "mật khẩu" (không có dấu ngoặc kép)

  • Đánh dấu, nhấn CTRL+ ENTER.

  • Màn hình thay đổi mật khẩu xuất hiện.


4
Bạn cũng có thể thực hiện "mật khẩu một số tên người dùng"
Anna

3
Tôi cho rằng bạn có nghĩa là hành động "Chạy tuyên bố". Lối tắt mặc định dường như là Ctrl + Enter .
Álvaro González

70

SQL Developer có một tùy chọn mật khẩu đặt lại tích hợp có thể hoạt động cho tình huống của bạn. Nó cũng yêu cầu thêm Oracle Instant Client vào máy trạm. Khi ứng dụng khách ngay lập tức nằm trong đường dẫn khi nhà phát triển SQL khởi chạy, bạn sẽ có tùy chọn sau được bật:

Nhà phát triển SQL: Menu thả xuống hiển thị tùy chọn đặt lại mật khẩu

Oracle Instant Client không cần quyền quản trị để cài đặt, chỉ cần khả năng ghi vào thư mục và thêm thư mục đó vào đường dẫn của người dùng. Hầu hết người dùng có đặc quyền để làm điều này.

Tóm tắt: Để sử dụng Đặt lại mật khẩu trên Oracle SQL Developer:

  1. Bạn phải giải nén Oracle Instant Client trong một thư mục
  2. Bạn phải thêm thư mục Oracle Instant Client vào đường dẫn người dùng
  3. Sau đó, bạn phải khởi động lại Oracle SQL Developer

Tại thời điểm này, bạn có thể nhấp chuột phải vào nguồn dữ liệu và đặt lại mật khẩu của mình.

Xem http://www.thatjeffsmith.com/archive/2012/11/resetting-your-oracle-user-password-with-sql-developer/ để biết thông tin đầy đủ

Ngoài ra, hãy xem nhận xét trong tài liệu oracle: http://docs.oracle.com/cd/E35137_01/appdev.32/e35117/dialogs.htmlm#RPTUG41808

Một cấu hình thay thế để SQL Developer (được thử nghiệm trên phiên bản 4.0.1) nhận ra và sử dụng Instant Client trên OS X là:

  1. Đặt đường dẫn đến Máy khách tức thì trong Tùy chọn -> Cơ sở dữ liệu -> Nâng cao -> Sử dụng Máy khách Oracle
  2. Xác minh Máy khách Instance có thể được tải thành công bằng cách sử dụng các tùy chọn Cấu hình ... -> Kiểm tra ... từ trong hộp thoại tùy chọn
  3. (OS X) Tham khảo câu hỏi này để giải quyết các vấn đề liên quan đến biến môi trường DYLD_LIBRARY_PATH. Tôi đã sử dụng lệnh sau và sau đó khởi động lại SQL Developer để nhận thay đổi:

    $ launchctl setenv DYLD_LIBRARY_PATH / đường dẫn / đến / oracle / Instantclient_11_2


1
Không khả dụng cho tất cả người dùng 80 (
Keng

hmmm, dường như không làm việc cho tôi Tôi tự hỏi nếu cập nhật PATH thực sự là tất cả những gì bạn phải làm, trên máy Mac.
fudo

Tôi sử dụng mac một ngôi nhà, nhưng một máy tính windows tại nơi làm việc. Chúng tôi sẽ sớm chuyển sang máy Mac .. Nếu tôi tìm thấy thông tin chi tiết tôi sẽ đăng chúng.
Frobbit

1
Google rất hữu ích :-) với nó tôi đã tìm thấy: oracle.com/technetwork/topics/linuxx86-64soft-092277.html có thể bị cũ. Để google nó một lần nữa sử dụng goo.gl/kU5ZdM
Frobbit

1
Cảm ơn bạn, nó đã hoạt động trên Windows 7 64 bit. Tôi đã phải trải qua một bước bổ sung mặc dù (giống như bước đầu tiên trên cấu hình OS X ở trên), nếu không, tùy chọn 'đặt lại mật khẩu' sẽ vẫn bị mờ đi. 4. Đặt đường dẫn đến Máy khách tức thời trong Tùy chọn -> Cơ sở dữ liệu -> Nâng cao -> Sử dụng Máy khách Oracle
marciowerner

24

Người dùng của bạn vẫn có thể thay đổi mật khẩu của họ bằng cách "thay đổi chỉ người dùngTheirUserName được xác định bởi newpassword ". Họ không phải có đặc quyền ALTER USER để thay đổi mật khẩu của riêng họ.


16

Tùy thuộc vào cài đặt quản trị viên, bạn có thể phải chỉ định mật khẩu cũ của mình bằng tùy chọn REPLACE

alter user <username> identified by <newpassword> replace <oldpassword> 

mật khẩu mới và mật khẩu cũ có thể giống nhau không?
Haris Mehmood

2
Câu trả lời này là sai. newpassword và oldpassword được hoán vị. Thay vào đó, hãy sử dụng stackoverflow.com/a/10809140/643483
Aaron Kurtzhals

1
@AaronKurtzhals Câu trả lời bạn tham khảo nói giống như câu trả lời của tôi. Tham khảo các tài liệu tiên tri ở đây: docs.oracle.com/cd/B19306_01/server.102/b14200/ chủ
Gerry Gurevich

Điều chính được thêm vào (đã được @pgs thực hiện trong câu trả lời của anh ấy cho cùng câu hỏi này) là bạn có thể cần đặt dấu ngoặc kép xung quanh mật khẩu nếu chúng có chứa các ký tự đặc biệt.
Gerry Gurevich

10

Để làm cho nó rõ ràng một chút:

Nếu tên người dùng: abcdef và mật khẩu cũ: a123b456, mật khẩu mới: m987n654

thay đổi người dùng abcdef được xác định bởi m987n654 thay thế a123b456 ;


9

Tôi nhận ra rằng có nhiều câu trả lời, nhưng tôi đã tìm thấy một giải pháp có thể hữu ích cho một số người. Tôi gặp vấn đề tương tự, tôi đang chạy oracle sql phát triển trên máy tính cục bộ của mình và tôi có một nhóm người dùng. Tôi tình cờ nhớ mật khẩu cho một trong những người dùng của mình và tôi đã sử dụng nó để đặt lại mật khẩu của những người dùng khác.

Các bước:

  1. kết nối với cơ sở dữ liệu bằng người dùng và mật khẩu hợp lệ, trong trường hợp của tôi, tất cả người dùng của tôi đã hết hạn ngoại trừ "hệ thống" và tôi nhớ mật khẩu đó

  2. tìm nút "Other_users" trong cây khi hình ảnh bên dưới hiển thị

nhập mô tả hình ảnh ở đây

3. với cây "Other_users" tìm người dùng của bạn mà bạn muốn đặt lại mật khẩu và nhấp chuột phải vào ghi chú và chọn "Chỉnh sửa người dùng"

nhập mô tả hình ảnh ở đây

4. điền mật khẩu mới vào hộp thoại chỉnh sửa người dùng và nhấp vào "Áp dụng". Đảm bảo rằng bạn đã bỏ chọn "Mật khẩu đã hết hạn (người dùng phải thay đổi lần đăng nhập tiếp theo)".

nhập mô tả hình ảnh ở đây

Và điều đó hiệu quả với tôi, Nó không tốt như giải pháp khác vì bạn cần có thể đăng nhập vào ít nhất một tài khoản nhưng nó vẫn hoạt động.


7

Tôi đã xác nhận điều này hoạt động trong SQL Developer 3.0.04. Mật khẩu của chúng tôi được yêu cầu phải có một ký tự đặc biệt, do đó, chuỗi trích dẫn kép là cần thiết trong trường hợp của chúng tôi. Tất nhiên, điều này chỉ hoạt động nếu mật khẩu chưa hết hạn và bạn hiện đang đăng nhập.

ALTER USER MYUSERID
IDENTIFIED BY "new#password"
REPLACE "old#password"

3
Câu trả lời này là sai. newpassword và oldpassword được hoán vị. Thay vào đó, hãy sử dụng stackoverflow.com/a/10809140/643483
Aaron Kurtzhals

3

Hãy thử giải pháp này nếu tùy chọn Đặt lại Mật khẩu (của Nhà phát triển SQL) không hoạt động :

Bước 1: Mở Run Dòng lệnh SQL (từ menu bắt đầu, đi kèm với gói cài đặt SQL Developer)

Bước 2: Chạy các lệnh sau:

nhập mô tả hình ảnh ở đây

Lưu ý: Nếu mật khẩu đã hết hạn, Changing password for <user>tùy chọn sẽ tự động đến.


2

Tùy chọn mật khẩu đặt lại tích hợp có thể không hoạt động cho người dùng. Trong trường hợp này, mật khẩu có thể được đặt lại bằng cách sử dụng câu lệnh SQL sau:

ALTER user "user" identified by "NewPassword" replace "OldPassword";

1

bạn có thể tìm thấy người dùng trong bảng DBA_USERS như

SELECT profile
FROM dba_users
WHERE username = 'MacsP'

Bây giờ hãy vào sys / system (quản trị viên) và sử dụng truy vấn

ALTER USER PRATEEK
IDENTIFIED BY "new_password"
REPLACE "old_password"

Để xác minh trạng thái tài khoản chỉ cần đi qua

SELECT * FROM DBA_USERS.

và bạn có thể thấy trạng thái của người dùng của bạn.


1

Bây giờ bạn có thể làm điều này trong SQL Developer 4.1.0.17 , không yêu cầu PL / SQL, giả sử bạn có một tài khoản khác có đặc quyền quản trị:

  1. Tạo kết nối tới cơ sở dữ liệu trong SQL Developer 4.1.0.17 với người dùng quản trị thay thế
  2. Mở rộng phần "Người dùng khác" sau khi được kết nối và nhấp chuột phải vào người dùng đã hết hạn mật khẩu. Chọn "Chỉnh sửa người dùng".
  3. Bỏ chọn hộp kiểm "Mật khẩu đã hết hạn ...", nhập mật khẩu mới cho người dùng và nhấn "Lưu".
  4. Công việc hoàn thành! Bạn có thể kiểm tra bằng cách kết nối với người dùng đã hết hạn mật khẩu để xác nhận lại mật khẩu.

1

Có một cách khác để đặt lại mật khẩu thông qua dấu nhắc lệnh ...

1) Chuyển đến Thư mục Cơ sở dữ liệu Oracle (Trong trường hợp của tôi là Phiên bản Express 11g của Cơ sở dữ liệu Oracle) trong BẮT ĐẦU BẮT ĐẦU.

2) Trong thư mục đó, nhấp vào "Chạy dòng lệnh SQL"

Hình ảnh thư mục cơ sở dữ liệu Oracle

3) Nhập " kết nối tên người dùng / mật khẩu " (tên người dùng và mật khẩu cũ của bạn mà không có dấu ngoặc kép)

4) Thông báo hiển thị là ...

LRI: ORA-28001: mật khẩu đã hết hạn

Thay đổi mật khẩu cho hr

-> Mật khẩu mới:

Nhập tên người dùng, hình ảnh mật khẩu

5) Nhập mật khẩu mới

6) Nhập lại mật khẩu mới

7) Tin nhắn được hiển thị là ...

Mật khẩu đã thay đổi Đã kết nối.

SQL>

8) ĐI ĐẾN nhà phát triển Sql -> nhập mật khẩu mới -> đã kết nối


Trong khi OP vẫn hoạt động, 5 năm sau khi câu hỏi được hỏi, câu trả lời có thể không còn phù hợp nữa.
Dâu

@Strawberry nếu nó trả lời câu hỏi, tại sao không? !!
Muhammed Refaat

1

Một lưu ý cho những người có thể không có mật khẩu được đặt cho sysdba hoặc sys và thường xuyên sử dụng máy khách của bên thứ ba. Dưới đây là một số thông tin về việc đăng nhập vào dòng lệnh sqlplus mà không cần mật khẩu giúp tôi. Tôi đang sử dụng fedora 21.

locate sqlplus

Trong trường hợp của tôi, sqlplus được đặt ở đây:

/u01/app/oracle/product/11.2.0/xe/config/scripts/sqlplus.sh

Bây giờ chạy

cd /u01/app/oracle/product/11.2.0/xe/config/scripts
./sqlplus.sh / as sysdba

Bây giờ bạn cần kết nối với cơ sở dữ liệu với thông tin đăng nhập cũ của bạn. Bạn có thể tìm thấy mẫu do Oracle cung cấp trong đầu ra của bạn:

Use "connect username/password@XE" to connect to the database.

Trong trường hợp của tôi, tôi có người dùng "oracle" với mật khẩu "oracle" để đầu vào của tôi trông giống như

connect oracle/oracle@XE

Làm xong. Bây giờ gõ mật khẩu mới của bạn hai lần. Sau đó, nếu bạn không muốn mật khẩu của mình hết hạn nữa, bạn có thể chạy

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
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.