2016-11-30 6 views
0

ugestion ()이라는 사용자를 생성했습니다. SYSTEM으로 기록됩니다. 테이블을 관리 할 수있는 방법은 무엇입니까? 나는 그에게 특정한 테이블에 대한 통제권을 갖기를 원한다. 적절한 명령은 무엇입니까? 아무것도 작동하지 않는 것 같아요. 그리고 나는 단지 그 특정한 것을 관리 할 수 ​​있기를 원하기 때문에 "우량한 테이블을 부추려 야합니다."라고하고 싶지 않습니다. 해당 명령을 실행하기 전에 사용자에게 몇 가지 특별한 권한을 부여해야합니까? 그리고 어떤 명령을 실행해야합니까? 예를 들어, "GRANT ALTER TABLE ON tblinstituciones to Uugestion"과 같은 명령을 실행했지만 작동하지 않았습니다. 나는 오라클, sqlplus로 시작하고있다.사용자에게 테이블 할당 (oracle, sql plus)

+1

수 없습니다. 먼저, SYSTEM 스키마에 오브젝트를 작성하지 않아야합니다. 둘째, 사용자가 테이블 (삽입, 업데이트, 삭제)에서 DML을 수행 할 수있는 권한을 부여 할 수 있지만 사용자가 단일 테이블에서 DDL을 수행 할 수는 없습니다. 현실적으로, 그렇게하고 싶다면, 그 사용자의 스키마에 테이블을 생성해야합니다. 당신은 내가 생각하기에 테이블에 DDL을 저장하고 사용자에게 저장 프로 시저를 실행할 수있는 권한을 부여하는 저장 프로 시저를 만들 수는 있지만 훨씬 복잡한 접근 방법입니다. –

+0

고마워요.하지만 제대로하는 법을 모르겠습니다. 어쨌든 고맙습니다. 앞으로 더 잘 이해할 수있을 것입니다. 매우 유용 할 것 같습니다 ... – Lorena

답변

0

: 당신은 SYSTEM 스키마에 만든 테이블을 제거합니다

DROP TABLE SYSTEM.TBLINSTITUCIONES; 

:

SYSTEM로 로그인

, 다음 명령을 실행합니다. 다른 사람들이 언급했듯이, SYSTEM 또는 SYS 스키마에 테이블이나 다른 객체를 생성해서는 안됩니다.

다음 :

SYSTEM 계정에서 로그 오프하십시오.

다음 : UGESTION 사용자로

되다.

다음 :

CREATE TABLE UGESTION.TBLINSTITUCIONES 
    (put all your field definitions here); 

는이 표에 작성해야 어떤 필드의 정의를 "여기에 모든 필드 정의를 넣어"교체. 위의 내용은 그렇게 할 때까지 작동하지 않습니다.

행운을 빈다.

+0

정말 고마워요. 이미 테이블을 만들었 어! 나는 지금부터 SYSTEM으로 테이블을 만들지 않을 것을 고려할 것이다. – Lorena

0

테이블을 버리십시오.

을 다시 만들 수 있지만 CREATE TABLE 명령에서, A는 라 SCOTT가 될 것

Create Table Scott.Stackoverflow (
A Integer, 
B Varchar2(20), 
C Clob); 

스키마/사용자 테이블을 원하는 ... 사용자 이름과 테이블 이름을 사전에 해결 또한 속한 실제 DDL로 대체하십시오.

당신도 할 수 ...

CREATE TABLE SCOTT.STACKOVERFLOW AS SELECT * FROM ORIGINAL_TABLE; 

CTAS 등 열 주석, 제약 조건, 인덱스,

지금 그들이 테이블을 소유하고 같은 것들을 잡아되지 않습니다. 그들은 그것으로 원하는 무엇이든 할 수 있습니다. 그건 그들 꺼야. 그들은 그것을 떨어 뜨릴 수 있습니다. 그들은 그것을 바꿀 수 있습니다. 삽입/업데이트/삭제 /자를 수 있습니다. 그들은 다른 사람들에게 privs를 줄 수 있습니다.

SYSTEM 스키마 (또는 SYS!)에 개체를 만들어서는 안됩니다. 먼저

+0

명령을 실행하면 왼쪽 괄호가 누락되었다고 말합니다. 어디에서 괄호를 써야합니까? 이 "CREATE TABLE (username.tablename);"과 같이 입력하면 그것은 나에게도 오류를 준다. 그래도 고마워. – Lorena

+0

아니요, 답변을 수정하겠습니다 – thatjeffsmith

0

시스템 사용자는 모든 사용자 개체에 사용하면 안됩니다.제발 :

create table ugestion.tblinstituciones as select * from system.tblinstituciones; 
drop table system.tblinstituciones; 

테이블 정의와 데이터가 이동합니다이 방법은 사용자 스키마 시스템에서 (사실 당신은 새로운 스키마의 데이터와 새로운 테이블을 생성).