2010-06-21 32 views
102

Nhiều người dùng của tôi không sử dụng sqlplus. Tôi không thể cho họ thay đổi người dùng. Chúng tôi hết hạn mật khẩu sau 60 ngày.thay đổi mật khẩu với Nhà phát triển SQL của oracle

Tôi không thể nhận lệnh sqlplus "mật khẩu" để làm việc trong nhà phát triển sql.

  1. Khi tôi nhấn chạy, tôi nhận được một lỗi lệnh không hợp lệ
  2. Khi tôi nhấn chạy kịch bản, không có gì xảy ra.

Tôi không muốn viết cho họ 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ó lựa chọn tốt hơn không?

+3

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 thư viện OCI cho việc này. Nhà phát triển SQL có tùy chọn đặt lại và hết hạn mật khẩu qua ngăn xếp OCI nếu nó đã được cài đặt đúng. Xem câu trả lời của tôi để biết chi tiết đầy đủ. – Frobbit

+0

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. – fuzzyanalysis

Trả lời

23

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 người dùng onlyTheirUserName được xác định bằng từ mới". Họ không cần phải có đặc quyền ALTER USER để thay đổi mật khẩu của riêng họ.

11

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

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

có thể mật khẩu mới và mật khẩu cũ không? –

+1

Câu trả lời này là sai. newpassword và oldpassword được transposed. Sử dụng http://stackoverflow.com/a/10809140/643483 thay vì –

+0

@AaronKurtzhals Câu trả lời mà bạn tham chiếu nói cùng một câu trả lời của tôi. Tham khảo tài liệu oracle tại đây: https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4003.htm –

10

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

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

dùng ALTER abcdef xác định bởi m987n654 thay a123b456;

134

Cú pháp đúng để cập nhật mật khẩu sử dụng SQL Developer là:

alter user user_name identified by "new_password" replace "old_password" ;

Bạn có thể kiểm tra thêm nhiều lựa chọn cho lệnh này ở đây: http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_4003.htm#i2058207

+23

Ngoài ra, bạn có thể cần phải quấn (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ụ: 'thay đổi người dùng __user_name__ được xác định bởi" newp @ ss !!! " thay thế "oldp @ ss !!!" 'Thông tin thêm tại http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:897930000346894755 –

+3

Nếu pwd của bạn đã hết hạn 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. –

8

Tôi khẳng định công trình này 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 được 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, đây chỉ hoạt động nếu mật khẩu đã chưa hết hạn và bạn đang đăng nhập

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

Câu trả lời này là sai. newpassword và oldpassword được transposed. Sử dụng http://stackoverflow.com/a/10809140/643483 thay vì –

77

Trong một bảng SQL:.

gõ "password" (không có dấu ngoặc kép) Highlight, 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 "tên người dùng mật khẩu" – Anna

+3

Tôi cho rằng bạn có nghĩa là hành động "Chạy câu lệnh". Cắt ngắn mặc định có vẻ là ** Ctrl + Enter **. –

41

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

SQL Developer: Drop Down menu showing reset password option

Oracle Instant Khách hàng không cần quyền admin để cài đặt, chỉ cần khả năng để viết vào một thư mục và thêm rằng vào đường dẫn người dùng. Hầu hết người dùng đều có đặc quyền để thực hiện việc này.

Tóm tắt: Để sử dụng Reset Password trên Oracle SQL Developer:

  1. Bạn phải giải nén Oracle tức thì khách hàng trong một thư mục
  2. Bạn phải thêm thư mục Instant Khách hàng của Oracle với các đường dẫn người dùng
  3. 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/ cho một hoàn walk-through

Xem thêm nhận xét trong các tài liệu oracle: http://docs.oracle.com/cd/E35137_01/appdev.32/e35117/dialogs.htm#RPTUG41808

Một cấu hình thay thế cho có SQL Developer (thử nghiệm trên phiên bản 4.0.1) nhận biết và sử dụng tức thì khách hàng trên OS X là:

  1. Set đường dẫn đến khách hàng tức thì trong Preferences -> Cơ sở dữ liệu -> Advanced -> Sử dụng Oracle client
  2. Xác minh ứng dụng khách có thể nạp thành công bằng cách sử dụng tùy chọn Định cấu hình ... -> Kiểm tra ... từ trong hộp thoại tùy chọn
  3. (OS X) Tham khảo this question để 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 đây và sau đó khởi động lại SQL Developer để nhận sự thay đổi:

    $ launchctl setenv DYLD_LIBRARY_PATH/path/to/oracle/instantclient_11_2

+1

Không có sẵn cho tất cả người dùng 80 ( – Keng

+0

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

+0

Tôi sử dụng một mac một ngôi nhà, nhưng một cửa sổ pc chúng tôi sẽ sớm chuyển sang máy Mac ..Nếu tôi tìm thấy chi tiết tôi sẽ đăng chúng. – Frobbit

0

Việc xây dựng trong tùy chọn thiết lập lại mật khẩu không thể làm việc cho người dùng. Trong trường hợp này các mật khẩu có thể được thiết lập lại sử dụng sau câu lệnh SQL:

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

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

SELECT profile 
FROM dba_users 
WHERE username = 'MacsP' 

Bây giờ đi đến sys/hệ thống (quản trị) và sử dụng truy vấn

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

Để xác minh tình trạng 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 mình.

1

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

  1. Tạo một kết nối cơ sở dữ liệu trong SQL Developer 4.1.0.17 với trung tâm hành chính thay thế người dùng
  2. Mở rộng phần "Người dùng khác" khi đã kết nối và nhấp chuột phải vào người dùng có mật khẩu đã hết hạn. 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. Hoàn thành công việc!Bạn có thể kiểm tra bằng cách kết nối với người dùng có mật khẩu đã hết hạn, để xác nhận nó hiện có hiệu lực trở lại.
0

Có một cách khác để đặt lại mật khẩu qua command prompt ...

1) Tới Folder Database Oracle (Trong trường hợp của tôi Oracle Database 11g Express Edition) trong menu Start .

2) Trong thư mục đó nhấp chuột "Run SQL dòng lệnh"

Oracle Database Folder image

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

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

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

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

-> New password:

Enter Username, Password image

5) Gõ mật khẩu mới

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

7) Hiển thị tin nhắn là ...

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

SQL>

8) GO TO phát triển Sql -> nhập mật khẩu mới -> kết nối

+0

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. – Strawberry

+0

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

0

Một lưu ý đối với những người có thể không có thiết lập mật mã cho SYSDBA hoặc sys và thường xuyên sử dụng một ứng dụng 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 bằng cách này.

locate sqlplus 

Trong trường hợp của tôi, sqlplus nằm ở đâ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 phải kết nối với cơ sở dữ liệu với các thông tin cũ của bạn. Bạn có thể tìm Oracle cung cấp mẫu trong đầu ra của bạn:

Use "connect username/[email protected]" to connect to the database. 

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

connect oracle/[email protected] 

Xong.Bây giờ hãy nhập 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 bạn hết hạn nữa bạn có thể chạy

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 
2

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

bước:

  1. kết nối với một cơ sở dữ liệu bằng cách sử dụ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 trừ "hệ thống" và tôi nhớ rằng mật khẩu

  2. tìm ra "Other_users" nút trong cây như hình ảnh dưới đây trình bày

enter image description here

3.within các "Other_users" cây tìm người dùng của bạn mà bạn muốn thiết lập lại mật khẩu và nhấn chuột phải lưu ý và chọn "Edit Users"

enter image description here

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

enter image description here

Và đó làm việc cho tôi, Nó không phải là tốt như giải pháp khác bởi vì bạn cần để có thể đăng nhập vào ít nhất một tài khoản nhưng nó làm việc.

Các vấn đề liên quan