BookmarkSubscribeRSS Feed
AIS1
Calcite | Level 5

Hello,

 

we have a rather unusual situation.

 

We have a process that regularly does updates and inserts on a given data_table (which is a 7bdat file).

Our inserts fail because the batch user does not have permissions on the data_table.index .

 

Actual message:

ERROR: User does not have appropriate authorization level for file SAS_OUT.PON_BCS.INDEX.

NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.

(Bold by me)

 

In the past, similar errors could be fixed by giving write right on the specific table to the batch user (and it indeed makes sense that it would not work without those rights being given).

 

The batch user that does these updates does have R/W and even X permissions on the table SAS_OUT.PON_BCS .

I cannot find a sas_out.PON_BCS.INDEX File.

 

The datafile does indeed have several indizes on it, and those will be neccessary for performance.

 

 

1 REPLY 1
Tom
Super User Tom
Super User

Are you really setting permissions at the file level and not the directory level?

 

Anyway the indexes are stored in a separate file.  If you have a dataset with a member name of PON_BCS then the dataset will be in a file name pon_bcs.sas7bdat and the indexes will be in a file named pon_bcs.sas7bndx.

 

Example:

 

46   data work.test (index=(name));
47    set sashelp.class;
48   run;

NOTE: There were 19 observations read from the data set SASHELP.CLASS.
NOTE: The data set WORK.TEST has 19 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.11 seconds
      cpu time            0.01 seconds


49   data _null_;
50     infile "cd %sysfunc(pathname(work)); ls test.sas7*" pipe;
51     input;
52     put _infile_;
53   run;

NOTE: The infile "cd xxx; ls test.sas7*" is:
      Pipe command="cd xxx; ls test.sas7*"

test.sas7bdat
test.sas7bndx
NOTE: 2 records were read from the infile "cd xxx; ls test.sas7*".
      The minimum record length was 13.
      The maximum record length was 13.
NOTE: DATA statement used (Total process time):
      real time           0.23 seconds
      cpu time            0.00 seconds

 

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

Mastering the WHERE Clause in PROC SQL

SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 1 reply
  • 355 views
  • 1 like
  • 2 in conversation