grant select on table_name to other_username

解决方案 »

  1.   

    create table bok(
    s_id number(10),
    b_id number(10)
    );
    grant select on bok to scott;
    这样执行后;在PRO*C写的程序以scott密码tiger登陆 还是无法访问BOK表??
      

  2.   

    如果想设定 所有人都可以访问这个表 那 “other_username”得是什么参数
      

  3.   

    还有那个表在 oracle 9i内执行SQL脚本 却可以访问
      

  4.   

    一般情况下,我都在OMF下建一个用户,给用户以一定的权限,在用户下建表,以用户身份访问表。
      

  5.   

    你用scott登录SQL PLUS能访问bok表吗?
      

  6.   

    create table bok(
    s_id number(10),
    b_id number(10));在SCOTT用户下创建的表;在SQL PLUS下访问、查找都可以;
    但是在PRO*C|C++下编写
    void sql()
    {
      printf("请输入S_ID: ");
      scanf("%d",&sid);
      EXEC SQL SELECT b_id INTO :bid FROM bok
        WHERE s_id=:sid;
      if(sqlca.sqlcode==0)
       printf("%d\n",bid);
      else
       printf("%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
    }
    这个编译运行后就不能访问了??
    这个也是以SCOTT登陆的??
      

  7.   

    EXEC SQL BEGIN DECLARE SECTION;
    char username[10],password[50],server[10];
      double  sid,bid;
    EXEC SQL END DECLARE SECTION;
    void connect()
    {
     printf("INPUT NAME :");
     gets(username);
     printf("INPUT PWD :");
     gets(password);
     printf("INPUT PWD :");
     gets(server);
     EXEC SQL CONNECT :username IDENTIFIED BY :password USING :server;
    }
    void sql()
    {
      printf("请输入sid: ");
      scanf("%d",&sid);
      EXEC SQL SELECT b_id INTO :bid FROM bok
        WHERE s_id=:sid;
      if(sqlca.sqlcode==0)
       printf("%d\n",bid);
      else
       printf("%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
    }
    void sql_error()
    {
     printf("%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
    }
    void main()
    {
      EXEC SQL WHENEVER SQLERROR DO sql_error();
      connect();
      if(sqlca.sqlcode==0)
        printf("已连接数据库!\n");
      else
        printf("err%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
       sql();
      EXEC SQL COMMIT RELEASE;
    }