-->
Adventures & experiences in contemporary technology
In a world where write access to a folder or directory is controlled by permission settings at the operating system level, a ready answer for when you get the above message in your log when creating a SAS data set would be to check your access. However, if you are working in Windows and your access seems fine, then SAS’ generation of an access error message seems all the more perplexing.
Unlike the more black-and-white world of UNIX and Linux, Windows has other ways to change access that could throw things off from the straight and narrow. One of them, it would appear, is to right-click on the file listing pane in Windows Explorer and select “Customize this folder…” to change how it appears. The strange upshot of this is that a perpetual read-only flag is set for the folder in question and that flag triggers SAS authorisation errors. The behaviour is very strange and unexpected when you find it, and the quickest and easiest solution sounds drastic. This involves deleting the folder and creating a new one in its place, saving anything that you want to retain in another temporary location. An alternative approach uses the attrib command and is less invasive.
It begs the question as to why Microsoft is re-appropriating a flag used for access purposes to be used to determine whether the HTML components of a folder display have been changed or not. This is very strange stuff and does not look like good software design at all. With all the other problems Microsoft creates for itself, I am not holding my breath until it’s fixed either. There seem to be other things like this waiting to catch you out when using Windows SAS and a good place to start is with SAS’ own description of the problem that I have just shared.
libname test ‘c:temp’ access=readonly;
*with access=readonly the problems will disappear then;
*at least you read the data set;
What your comment assumes is that you have read access to the data set. If you don’t have that, then it’s an issue that needs addressing in another way.